add two settings to configure image caching

This commit is contained in:
dkanada 2020-06-20 02:00:02 +09:00
commit ee6fd61d43
7 changed files with 93 additions and 0 deletions

View file

@ -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) {
}
}

View file

@ -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

View file

@ -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);
}