summaryrefslogtreecommitdiff
path: root/core/src/main/java/de/danoeh/antennapod
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2021-07-29 20:53:05 +0200
committerByteHamster <info@bytehamster.com>2021-07-29 21:27:58 +0200
commit6d63186e3b19b5ab8cb7350689ac30716496bb01 (patch)
tree9728fcb628ec84aa8f90577b0e720ac92d70a4e7 /core/src/main/java/de/danoeh/antennapod
parentbc59d50804328f3c5a293079a33576ff260022ea (diff)
downloadAntennaPod-6d63186e3b19b5ab8cb7350689ac30716496bb01.zip
Remove image cache size setting and choose size automatically
Diffstat (limited to 'core/src/main/java/de/danoeh/antennapod')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/glide/ApGlideModule.java13
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java15
2 files changed, 10 insertions, 18 deletions
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 b3adc567e..8ad04cb47 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
@@ -1,6 +1,8 @@
package de.danoeh.antennapod.core.glide;
+import android.annotation.SuppressLint;
import android.content.Context;
+import android.util.Log;
import androidx.annotation.NonNull;
import com.bumptech.glide.Glide;
@@ -16,7 +18,6 @@ import de.danoeh.antennapod.core.util.EmbeddedChapterImage;
import java.io.InputStream;
import com.bumptech.glide.request.RequestOptions;
-import de.danoeh.antennapod.core.preferences.UserPreferences;
import java.nio.ByteBuffer;
/**
@@ -24,12 +25,18 @@ import java.nio.ByteBuffer;
*/
@GlideModule
public class ApGlideModule extends AppGlideModule {
+ private static final String TAG = "ApGlideModule";
+ private static final long MEGABYTES = 1024 * 1024;
+ private static final long GIGABYTES = 1024 * 1024 * 1024;
@Override
public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
builder.setDefaultRequestOptions(new RequestOptions().format(DecodeFormat.PREFER_ARGB_8888));
- builder.setDiskCache(new InternalCacheDiskCacheFactory(context,
- UserPreferences.getImageCacheSize()));
+ @SuppressLint("UsableSpace")
+ long spaceAvailable = context.getCacheDir().getUsableSpace();
+ long imageCacheSize = (spaceAvailable > 2 * GIGABYTES) ? (250 * MEGABYTES) : (50 * MEGABYTES);
+ Log.d(TAG, "Free space on cache dir: " + spaceAvailable + ", using image cache size: " + imageCacheSize);
+ builder.setDiskCache(new InternalCacheDiskCacheFactory(context, imageCacheSize));
}
@Override
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 046e5a5a7..91006d446 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
@@ -116,7 +116,6 @@ public class UserPreferences {
// Other
private static final String PREF_DATA_FOLDER = "prefDataFolder";
- public static final String PREF_IMAGE_CACHE_SIZE = "prefImageCacheSize";
public static final String PREF_DELETE_REMOVES_FROM_QUEUE = "prefDeleteRemovesFromQueue";
public static final String PREF_USAGE_COUNTING_DATE = "prefUsageCounting";
@@ -129,8 +128,6 @@ public class UserPreferences {
private static final String PREF_FAST_FORWARD_SECS = "prefFastForwardSecs";
private static final String PREF_REWIND_SECS = "prefRewindSecs";
private static final String PREF_QUEUE_LOCKED = "prefQueueLocked";
- private static final String IMAGE_CACHE_DEFAULT_VALUE = "100";
- private static final int IMAGE_CACHE_SIZE_MINIMUM = 20;
private static final String PREF_LEFT_VOLUME = "prefLeftVolume";
private static final String PREF_RIGHT_VOLUME = "prefRightVolume";
@@ -616,18 +613,6 @@ public class UserPreferences {
return Build.VERSION.SDK_INT < 29 && prefs.getBoolean(PREF_ENABLE_AUTODL_WIFI_FILTER, false);
}
- public static int getImageCacheSize() {
- String cacheSizeString = prefs.getString(PREF_IMAGE_CACHE_SIZE, IMAGE_CACHE_DEFAULT_VALUE);
- int cacheSizeInt = Integer.parseInt(cacheSizeString);
- // if the cache size is too small the user won't get any images at all
- // that's bad, force it back to the default.
- if (cacheSizeInt < IMAGE_CACHE_SIZE_MINIMUM) {
- prefs.edit().putString(PREF_IMAGE_CACHE_SIZE, IMAGE_CACHE_DEFAULT_VALUE).apply();
- cacheSizeInt = Integer.parseInt(IMAGE_CACHE_DEFAULT_VALUE);
- }
- return cacheSizeInt * 1024 * 1024;
- }
-
public static int getFastForwardSecs() {
return prefs.getInt(PREF_FAST_FORWARD_SECS, 30);
}