summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2020-07-21 10:45:34 +0200
committerGitHub <noreply@github.com>2020-07-21 10:45:34 +0200
commita3a5a58ae64999a91251205517242290724e2ae2 (patch)
tree35d76c88794df4802d00d469c85c6973bb4a4d19
parent2339b2b8d4a0d7987e11ca45842f11f032ddb69b (diff)
parent663b08fc4478bceb1a80581a9c0875bde35f430b (diff)
downloadAntennaPod-a3a5a58ae64999a91251205517242290724e2ae2.zip
Merge pull request #4285 from ByteHamster/install-provider
Install provider in any case
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java19
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/ProviderInstallerInterceptor.java18
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/UserAgentInterceptor.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/AntennapodHttpClient.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/download/DownloadService.java5
-rw-r--r--core/src/play/java/de/danoeh/antennapod/core/ClientConfig.java15
6 files changed, 44 insertions, 19 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
index 0f7bab273..58b2d6db1 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/OnlineFeedViewActivity.java
@@ -266,16 +266,15 @@ public class OnlineFeedViewActivity extends AppCompatActivity {
true, null, true);
download = Observable.fromCallable(() -> {
- feeds = DBReader.getFeedList();
- ClientConfig.installSslProvider(this);
- downloader = new HttpDownloader(request);
- downloader.call();
- return downloader.getResult();
- })
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(this::checkDownloadResult,
- error -> Log.e(TAG, Log.getStackTraceString(error)));
+ feeds = DBReader.getFeedList();
+ downloader = new HttpDownloader(request);
+ downloader.call();
+ return downloader.getResult();
+ })
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(this::checkDownloadResult,
+ error -> Log.e(TAG, Log.getStackTraceString(error)));
}
private void checkDownloadResult(@NonNull DownloadStatus status) {
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();