diff --git a/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java b/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java index f4c4fd44..46e323a0 100644 --- a/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java +++ b/app/src/main/java/com/dkanada/gramophone/service/MultiPlayer.java @@ -12,6 +12,7 @@ import com.dkanada.gramophone.R; import com.dkanada.gramophone.model.Song; import com.dkanada.gramophone.service.playback.Playback; import com.dkanada.gramophone.util.MusicUtil; +import com.dkanada.gramophone.util.PreferenceUtil; import com.google.android.exoplayer2.ExoPlaybackException; import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.Player; @@ -142,7 +143,8 @@ public class MultiPlayer implements Playback { exoPlayer.setRepeatMode(Player.REPEAT_MODE_OFF); if (simpleCache != null) simpleCache.release(); - LeastRecentlyUsedCacheEvictor recentlyUsedCache = new LeastRecentlyUsedCacheEvictor(Long.MAX_VALUE); + long cacheSize = PreferenceUtil.getInstance(context).getMediaCacheSize(); + LeastRecentlyUsedCacheEvictor recentlyUsedCache = new LeastRecentlyUsedCacheEvictor(cacheSize); ExoDatabaseProvider databaseProvider = new ExoDatabaseProvider(context); File file = new File(App.getInstance().getApplicationInfo().dataDir + "/Gelli/exoplayer"); diff --git a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java index e5ecf899..9d61f153 100644 --- a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java +++ b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java @@ -83,6 +83,7 @@ public final class PreferenceUtil { public static final String REMEMBER_QUEUE = "remember_queue"; public static final String IMAGE_CACHE_SIZE = "image_cache_size"; + public static final String MEDIA_CACHE_SIZE = "media_cache_size"; private static PreferenceUtil sInstance; @@ -391,6 +392,10 @@ public final class PreferenceUtil { return Integer.parseInt(mPreferences.getString(IMAGE_CACHE_SIZE, "400000000")); } + public final int getMediaCacheSize() { + return Integer.parseInt(mPreferences.getString(MEDIA_CACHE_SIZE, "400000000")); + } + public List getCategories() { String data = mPreferences.getString(CATEGORIES, null); if (data != null) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f9a1c4c3..1e17b8af 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -100,7 +100,7 @@ Colors Now Playing Audio - Images + Cache Library Lock Screen Notification @@ -123,7 +123,8 @@ Remember Shuffle Remember Queue Page Size - Cache Size + Images + Media The primary theme color for control elements. An alternate color used to accent elements. diff --git a/app/src/main/res/xml/pref_cache.xml b/app/src/main/res/xml/pref_cache.xml index 3dc37a8f..c4094008 100644 --- a/app/src/main/res/xml/pref_cache.xml +++ b/app/src/main/res/xml/pref_cache.xml @@ -2,7 +2,7 @@ - + + +