summaryrefslogtreecommitdiff
path: root/core/src/main
diff options
context:
space:
mode:
authorH. Lehmann <ByteHamster@users.noreply.github.com>2019-04-03 17:43:53 +0200
committerGitHub <noreply@github.com>2019-04-03 17:43:53 +0200
commit7a98e3c2317f2c3d0853e0268c4af40bdedf1fde (patch)
treee9e6d69c8c82b02e02e45683de15029f6836f80d /core/src/main
parentb6e50c61d6dcf688345cf35c86de03145441bb6a (diff)
parent788e75515ad997835494267474b5a1e294814f63 (diff)
downloadAntennaPod-7a98e3c2317f2c3d0853e0268c4af40bdedf1fde.zip
Merge pull request #3082 from ByteHamster/mobile-updates
Mobile updates: Allow images
Diffstat (limited to 'core/src/main')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/UpdateManager.java5
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java2
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/glide/ApOkHttpUrlLoader.java16
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java12
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java10
-rw-r--r--core/src/main/res/values/arrays.xml12
-rw-r--r--core/src/main/res/values/strings.xml3
7 files changed, 48 insertions, 12 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/UpdateManager.java b/core/src/main/java/de/danoeh/antennapod/core/UpdateManager.java
index 29e2456b2..1b4cbc0ea 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/UpdateManager.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/UpdateManager.java
@@ -71,6 +71,11 @@ class UpdateManager {
UserPreferences.setEpisodeCleanupValue(oldValueInDays * 24);
} // else 0 or special negative values, no change needed
}
+ if (oldVersionCode < 1070197) {
+ if (prefs.getBoolean("prefMobileUpdate", false)) {
+ prefs.edit().putString(UserPreferences.PREF_MOBILE_UPDATE, "everything").apply();
+ }
+ }
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java b/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
index ec10b78aa..552c1b691 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java
@@ -31,6 +31,6 @@ public class ApGlideModule extends AppGlideModule {
@Override
public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) {
- registry.append(String.class, InputStream.class, new ApOkHttpUrlLoader.Factory());
+ registry.replace(String.class, InputStream.class, new ApOkHttpUrlLoader.Factory());
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/glide/ApOkHttpUrlLoader.java b/core/src/main/java/de/danoeh/antennapod/core/glide/ApOkHttpUrlLoader.java
index bd5276100..2e742e979 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/glide/ApOkHttpUrlLoader.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/glide/ApOkHttpUrlLoader.java
@@ -21,10 +21,8 @@ import de.danoeh.antennapod.core.service.download.AntennapodHttpClient;
import de.danoeh.antennapod.core.service.download.HttpDownloader;
import de.danoeh.antennapod.core.storage.DBReader;
import de.danoeh.antennapod.core.util.NetworkUtils;
-import okhttp3.Interceptor;
-import okhttp3.OkHttpClient;
-import okhttp3.Request;
-import okhttp3.Response;
+import okhttp3.*;
+import okhttp3.internal.http.RealResponseBody;
/**
* @see com.bumptech.glide.integration.okhttp3.OkHttpUrlLoader
@@ -111,10 +109,16 @@ class ApOkHttpUrlLoader implements ModelLoader<String, InputStream> {
@Override
public Response intercept(Chain chain) throws IOException {
- if (NetworkUtils.isDownloadAllowed()) {
+ if (NetworkUtils.isImageAllowed()) {
return chain.proceed(chain.request());
} else {
- return null;
+ return new Response.Builder()
+ .protocol(Protocol.HTTP_2)
+ .code(420)
+ .message("Policy Not Fulfilled")
+ .body(ResponseBody.create(null, new byte[0]))
+ .request(chain.request())
+ .build();
}
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
index 1feecd849..805f0c1b6 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java
@@ -77,7 +77,7 @@ public class UserPreferences {
// Network
private static final String PREF_ENQUEUE_DOWNLOADED = "prefEnqueueDownloaded";
public static final String PREF_UPDATE_INTERVAL = "prefAutoUpdateIntervall";
- private static final String PREF_MOBILE_UPDATE = "prefMobileUpdate";
+ public static final String PREF_MOBILE_UPDATE = "prefMobileUpdateAllowed";
public static final String PREF_EPISODE_CLEANUP = "prefEpisodeCleanup";
public static final String PREF_PARALLEL_DOWNLOADS = "prefParallelDownloads";
public static final String PREF_EPISODE_CACHE_SIZE = "prefEpisodeCacheSize";
@@ -380,8 +380,16 @@ public class UserPreferences {
}
}
+ public static String getMobileUpdatesEnabled() {
+ return prefs.getString(PREF_MOBILE_UPDATE, "images");
+ }
+
public static boolean isAllowMobileUpdate() {
- return prefs.getBoolean(PREF_MOBILE_UPDATE, false);
+ return getMobileUpdatesEnabled().equals("everything");
+ }
+
+ public static boolean isAllowMobileImages() {
+ return isAllowMobileUpdate() || getMobileUpdatesEnabled().equals("images");
}
public static int getParallelDownloads() {
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java
index b34ba196d..9bdd375ce 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/NetworkUtils.java
@@ -90,9 +90,13 @@ public class NetworkUtils {
return info != null && info.isConnected();
}
- public static boolean isDownloadAllowed() {
- return UserPreferences.isAllowMobileUpdate() || !NetworkUtils.isNetworkMetered();
- }
+ public static boolean isDownloadAllowed() {
+ return UserPreferences.isAllowMobileUpdate() || !NetworkUtils.isNetworkMetered();
+ }
+
+ public static boolean isImageAllowed() {
+ return UserPreferences.isAllowMobileImages() || !NetworkUtils.isNetworkMetered();
+ }
private static boolean isNetworkMetered() {
ConnectivityManager connManager = (ConnectivityManager) context
diff --git a/core/src/main/res/values/arrays.xml b/core/src/main/res/values/arrays.xml
index 157b040e1..6d310e0e5 100644
--- a/core/src/main/res/values/arrays.xml
+++ b/core/src/main/res/values/arrays.xml
@@ -55,6 +55,18 @@
<item>-1</item>
</string-array>
+ <string-array name="mobile_update_entries">
+ <item>@string/pref_mobileUpdate_nothing</item>
+ <item>@string/pref_mobileUpdate_images</item>
+ <item>@string/pref_mobileUpdate_everything</item>
+ </string-array>
+
+ <string-array name="mobile_update_values">
+ <item>nothing</item>
+ <item>images</item>
+ <item>everything</item>
+ </string-array>
+
<string-array name="episode_cleanup_entries">
<item>@string/episode_cleanup_queue_removal</item>
<item>0</item>
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 466e59058..3b03f2af7 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -388,6 +388,9 @@
<string name="pref_unpauseOnBluetoothReconnect_title">Bluetooth Reconnect</string>
<string name="pref_mobileUpdate_title">Mobile Updates</string>
<string name="pref_mobileUpdate_sum">Allow updates over the mobile data connection</string>
+ <string name="pref_mobileUpdate_nothing">Nothing</string>
+ <string name="pref_mobileUpdate_images">Images only</string>
+ <string name="pref_mobileUpdate_everything">Everything</string>
<string name="refreshing_label">Refreshing</string>
<string name="flattr_settings_label">Flattr settings</string>
<string name="pref_flattr_auth_title">Flattr sign-in</string>