summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java b/app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java
new file mode 100644
index 000000000..a0cf4bfc9
--- /dev/null
+++ b/app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java
@@ -0,0 +1,62 @@
+package de.danoeh.antennapod;
+
+import android.content.Context;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import de.danoeh.antennapod.core.storage.AutoDownloadManagerImpl;
+import de.danoeh.antennapod.net.download.service.feed.FeedUpdateManagerImpl;
+import de.danoeh.antennapod.net.download.serviceinterface.AutoDownloadManager;
+import de.danoeh.antennapod.net.download.serviceinterface.FeedUpdateManager;
+import de.danoeh.antennapod.net.sync.service.SyncService;
+import de.danoeh.antennapod.net.sync.serviceinterface.SynchronizationQueueSink;
+import de.danoeh.antennapod.storage.preferences.SynchronizationSettings;
+import de.danoeh.antennapod.storage.preferences.SynchronizationCredentials;
+import de.danoeh.antennapod.storage.preferences.PlaybackPreferences;
+import de.danoeh.antennapod.storage.preferences.SleepTimerPreferences;
+import de.danoeh.antennapod.storage.preferences.UsageStatistics;
+import de.danoeh.antennapod.net.common.UserAgentInterceptor;
+import de.danoeh.antennapod.storage.preferences.UserPreferences;
+import de.danoeh.antennapod.net.common.AntennapodHttpClient;
+import de.danoeh.antennapod.net.download.serviceinterface.DownloadServiceInterface;
+import de.danoeh.antennapod.net.download.service.feed.DownloadServiceInterfaceImpl;
+import de.danoeh.antennapod.net.common.NetworkUtils;
+import de.danoeh.antennapod.core.util.download.NetworkConnectionChangeHandler;
+import de.danoeh.antennapod.net.ssl.SslProviderInstaller;
+import de.danoeh.antennapod.storage.database.PodDBAdapter;
+
+import de.danoeh.antennapod.ui.notifications.NotificationUtils;
+import java.io.File;
+
+public class ClientConfigurator {
+ private static boolean initialized = false;
+
+ public static synchronized void initialize(Context context) {
+ if (initialized) {
+ return;
+ }
+ try {
+ PackageInfo packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
+ UserAgentInterceptor.USER_AGENT = "AntennaPod/" + packageInfo.versionName;
+ } catch (PackageManager.NameNotFoundException e) {
+ e.printStackTrace();
+ }
+ PodDBAdapter.init(context);
+ UserPreferences.init(context);
+ SynchronizationCredentials.init(context);
+ SynchronizationSettings.init(context);
+ UsageStatistics.init(context);
+ PlaybackPreferences.init(context);
+ SslProviderInstaller.install(context);
+ NetworkUtils.init(context);
+ NetworkConnectionChangeHandler.init(context);
+ DownloadServiceInterface.setImpl(new DownloadServiceInterfaceImpl());
+ FeedUpdateManager.setInstance(new FeedUpdateManagerImpl());
+ AutoDownloadManager.setInstance(new AutoDownloadManagerImpl());
+ SynchronizationQueueSink.setServiceStarterImpl(() -> SyncService.sync(context));
+ AntennapodHttpClient.setCacheDirectory(new File(context.getCacheDir(), "okhttp"));
+ AntennapodHttpClient.setProxyConfig(UserPreferences.getProxyConfig());
+ SleepTimerPreferences.init(context);
+ NotificationUtils.createChannels(context);
+ initialized = true;
+ }
+}