From: tobiasKaminsky Date: Mon, 12 Oct 2015 06:30:30 +0000 (+0200) Subject: cache resize X-Git-Tag: beta-20151129~5^2~5 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/39921730b32d6f1513cea2437b14365101768752?hp=--cc cache resize --- 39921730b32d6f1513cea2437b14365101768752 diff --git a/res/values/strings.xml b/res/values/strings.xml index 3d8726f2..a8bb60a4 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -366,5 +366,6 @@ %1$d files, 1 folder %1$d files, %2$d folders Common + Cache size diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index e2e35de2..7dfc63f2 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -55,7 +55,9 @@ - + diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index f0ecf767..d1be900a 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -140,6 +140,20 @@ public class ThumbnailsCacheManager { return null; } + /** + * Sets max size of cache + * @param maxSize in MB + * @return + */ + public static boolean setMaxSize(long maxSize){ + if (mThumbnailCache != null){ + mThumbnailCache.setMaxSize(maxSize * 1024 * 1024); + return true; + } else { + return false; + } + } + public static class ThumbnailGenerationTask extends AsyncTask { private final WeakReference mImageViewReference; private static Account mAccount; diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index e1c5c10d..16bee151 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -70,6 +70,7 @@ import com.owncloud.android.authentication.AccountUtils; import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.datamodel.ThumbnailsCacheManager; import com.owncloud.android.db.DbHandler; import com.owncloud.android.files.FileOperationsHelper; import com.owncloud.android.files.services.FileDownloader; @@ -237,6 +238,28 @@ public class Preferences extends PreferenceActivity } + final Preference pCacheSize = findPreference("pref_cache_size"); + if (pCacheSize != null){ + final SharedPreferences appPrefs = + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + String savedSize = appPrefs.getString("pref_cache_size", "10"); + pCacheSize.setSummary(savedSize + " Mb"); + pCacheSize.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + String temp = (String) newValue; + Long size = Long.decode(temp); + if (ThumbnailsCacheManager.setMaxSize(size)){ + appPrefs.edit().putString("pref_cache_size", size.toString()); + pCacheSize.setSummary(size + " Mb"); + return true; + } else { + return false; + } + } + }); + } + PreferenceCategory preferenceCategory = (PreferenceCategory) findPreference("more"); boolean helpEnabled = getResources().getBoolean(R.bool.help_enabled); diff --git a/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java b/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java index 0f2536f5..b5c04034 100644 --- a/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java +++ b/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java @@ -193,4 +193,8 @@ public class DiskLruImageCache { e.printStackTrace(); } } + + public void setMaxSize(long maxSize){ + mDiskCache.setMaxSize(maxSize); + } } \ No newline at end of file