diff options
author | H. Lehmann <ByteHamster@users.noreply.github.com> | 2020-07-21 10:45:34 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-21 10:45:34 +0200 |
commit | a3a5a58ae64999a91251205517242290724e2ae2 (patch) | |
tree | 35d76c88794df4802d00d469c85c6973bb4a4d19 /core/src | |
parent | 2339b2b8d4a0d7987e11ca45842f11f032ddb69b (diff) | |
parent | 663b08fc4478bceb1a80581a9c0875bde35f430b (diff) | |
download | AntennaPod-a3a5a58ae64999a91251205517242290724e2ae2.zip |
Merge pull request #4285 from ByteHamster/install-provider
Install provider in any case
Diffstat (limited to 'core/src')
5 files changed, 35 insertions, 9 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/ProviderInstallerInterceptor.java b/core/src/main/java/de/danoeh/antennapod/core/service/ProviderInstallerInterceptor.java new file mode 100644 index 000000000..4fa1fc3d7 --- /dev/null +++ b/core/src/main/java/de/danoeh/antennapod/core/service/ProviderInstallerInterceptor.java @@ -0,0 +1,18 @@ +package de.danoeh.antennapod.core.service; + +import androidx.annotation.NonNull; +import okhttp3.Interceptor; +import okhttp3.Response; + +import java.io.IOException; + +public class ProviderInstallerInterceptor implements Interceptor { + public static Runnable installer = () -> { }; + + @Override + @NonNull + public Response intercept(Chain chain) throws IOException { + installer.run(); + return chain.proceed(chain.request()); + } +} diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/UserAgentInterceptor.java b/core/src/main/java/de/danoeh/antennapod/core/service/UserAgentInterceptor.java index 5fcf8317d..3676347f7 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/UserAgentInterceptor.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/UserAgentInterceptor.java @@ -7,10 +7,6 @@ import okhttp3.Response; import java.io.IOException; public class UserAgentInterceptor implements Interceptor { - - public UserAgentInterceptor() { - } - @Override public Response intercept(Chain chain) throws IOException { return chain.proceed(chain.request().newBuilder() diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java index e0c23bdac..d0484f2a2 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java @@ -32,6 +32,7 @@ import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.service.ProviderInstallerInterceptor; import de.danoeh.antennapod.core.service.UserAgentInterceptor; import de.danoeh.antennapod.core.storage.DBWriter; import okhttp3.Cache; @@ -116,6 +117,7 @@ public class AntennapodHttpClient { } return response; }); + builder.interceptors().add(new ProviderInstallerInterceptor()); builder.interceptors().add(new BasicAuthorizationInterceptor()); builder.networkInterceptors().add(new UserAgentInterceptor()); diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java index ba7019fd9..e44aa716a 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java @@ -479,12 +479,9 @@ public class DownloadService extends Service { } handler.post(() -> { downloads.add(downloader); + downloadExecutor.submit(downloader); postDownloaders(); }); - // Needs to be done after postDownloaders() because otherwise, - // it might take long before the progress bar circle starts spinning - ClientConfig.installSslProvider(this); - handler.post(() -> downloadExecutor.submit(downloader)); } handler.post(this::queryDownloads); } diff --git a/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java b/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java index 60fd5f4ee..09d9f4623 100644 --- a/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java +++ b/core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java @@ -1,8 +1,8 @@ package de.danoeh.antennapod.core; import android.content.Context; +import android.content.Intent; import android.util.Log; - import com.google.android.gms.common.GoogleApiAvailability; import com.google.android.gms.common.GooglePlayServicesNotAvailableException; import com.google.android.gms.common.GooglePlayServicesRepairableException; @@ -12,6 +12,7 @@ import de.danoeh.antennapod.core.preferences.PlaybackPreferences; import de.danoeh.antennapod.core.preferences.SleepTimerPreferences; import de.danoeh.antennapod.core.preferences.UsageStatistics; import de.danoeh.antennapod.core.preferences.UserPreferences; +import de.danoeh.antennapod.core.service.ProviderInstallerInterceptor; import de.danoeh.antennapod.core.service.download.AntennapodHttpClient; import de.danoeh.antennapod.core.storage.PodDBAdapter; import de.danoeh.antennapod.core.util.NetworkUtils; @@ -64,6 +65,18 @@ public class ClientConfig { } else { Log.v(TAG, "Cast is disabled. All Cast-related initialization will be skipped."); } + ProviderInstaller.installIfNeededAsync(context, new ProviderInstaller.ProviderInstallListener() { + @Override + public void onProviderInstalled() { + Log.e(TAG, "onProviderInstalled"); + } + + @Override + public void onProviderInstallFailed(int i, Intent intent) { + Log.e(TAG, "onProviderInstallFailed"); + } + }); + ProviderInstallerInterceptor.installer = () -> installSslProvider(context); AntennapodHttpClient.setCacheDirectory(new File(context.getCacheDir(), "okhttp")); SleepTimerPreferences.init(context); RxJavaErrorHandlerSetup.setupRxJavaErrorHandler(); |