diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/ClientConfigurator.java | 62 |
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; + } +} |