diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index d93acfe4..2a11aa70 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -74,6 +74,9 @@
+
diff --git a/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideModule.java b/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideModule.java
new file mode 100644
index 00000000..b057f331
--- /dev/null
+++ b/app/src/main/java/com/dkanada/gramophone/glide/CustomGlideModule.java
@@ -0,0 +1,32 @@
+package com.dkanada.gramophone.glide;
+
+import android.content.Context;
+import android.os.Environment;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.GlideBuilder;
+import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
+import com.bumptech.glide.module.GlideModule;
+import com.dkanada.gramophone.App;
+import com.dkanada.gramophone.util.PreferenceUtil;
+
+import java.io.File;
+
+public class CustomGlideModule implements GlideModule {
+ @Override
+ public void applyOptions(Context context, GlideBuilder builder) {
+ builder.setDiskCache(new DiskLruCacheFactory(new DiskLruCacheFactory.CacheDirectoryGetter() {
+ @Override
+ public File getCacheDirectory() {
+ String folder = "/Gelli/images";
+ return PreferenceUtil.getInstance(App.getInstance()).getImagesExternalDirectory()
+ ? new File(Environment.getExternalStorageDirectory() + folder)
+ : new File(App.getInstance().getApplicationInfo().dataDir + folder);
+ }
+ }, PreferenceUtil.getInstance(App.getInstance()).getImagesCacheSize()));
+ }
+
+ @Override
+ public void registerComponents(Context context, Glide glide) {
+ }
+}
diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/SettingsActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/SettingsActivity.java
index 3cb37bf4..f9c00b6f 100644
--- a/app/src/main/java/com/dkanada/gramophone/ui/activities/SettingsActivity.java
+++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/SettingsActivity.java
@@ -121,6 +121,7 @@ public class SettingsActivity extends AbsBaseActivity implements ColorChooserDia
addPreferencesFromResource(R.xml.pref_now_playing_screen);
addPreferencesFromResource(R.xml.pref_lockscreen);
addPreferencesFromResource(R.xml.pref_audio);
+ addPreferencesFromResource(R.xml.pref_images);
}
@Nullable
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 9e233c30..9ba7d58b 100644
--- a/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java
+++ b/app/src/main/java/com/dkanada/gramophone/util/PreferenceUtil.java
@@ -64,6 +64,9 @@ public final class PreferenceUtil {
public static final String REMEMBER_SHUFFLE = "remember_shuffle";
public static final String REMEMBER_QUEUE = "remember_queue";
+ public static final String IMAGES_CACHE_SIZE = "images_cache_size";
+ public static final String IMAGES_EXTERNAL_DIRECTORY = "images_external_directory";
+
public static final String SLEEP_TIMER_LAST_VALUE = "sleep_timer_last_value";
public static final String SLEEP_TIMER_ELAPSED_REALTIME = "sleep_timer_elapsed_real_time";
public static final String SLEEP_TIMER_FINISH_SONG = "sleep_timer_finish_music";
@@ -118,6 +121,14 @@ public final class PreferenceUtil {
return Integer.parseInt(mPreferences.getString(MAXIMUM_LIST_SIZE, "100"));
}
+ public final int getImagesCacheSize() {
+ return Integer.parseInt(mPreferences.getString(IMAGES_CACHE_SIZE, "400000000"));
+ }
+
+ public final boolean getImagesExternalDirectory() {
+ return mPreferences.getBoolean(IMAGES_EXTERNAL_DIRECTORY, false);
+ }
+
public final int getLastTab() {
return mPreferences.getInt(LAST_TAB, 0);
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index 09e7738e..63649e47 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -52,4 +52,20 @@
- 100
+
+ - @string/unlimited
+ - 2GB
+ - 1GB
+ - 400MB
+ - 200MB
+
+
+
+ - 10000000000
+ - 2000000000
+ - 1000000000
+ - 400000000
+ - 200000000
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ec4ed028..b6848ee2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -92,6 +92,7 @@
Colors
Now Playing
Audio
+ Images
Library
Lockscreen
Notification
@@ -116,6 +117,9 @@
Remember Shuffle
Remember Queue
Maximum List Size
+ Cache Size
+ External Directory
+ Store the image cache in an external directory to keep the files between installs.
The primary theme color for control elements.
An alternate color used to accent elements.
Uses the current song\'s album cover as the lockscreen wallpaper.
diff --git a/app/src/main/res/xml/pref_images.xml b/app/src/main/res/xml/pref_images.xml
new file mode 100644
index 00000000..69ee78a5
--- /dev/null
+++ b/app/src/main/res/xml/pref_images.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file