From: tobiasKaminsky Date: Thu, 29 Oct 2015 17:37:28 +0000 (+0100) Subject: Merge remote-tracking branch 'remotes/upstream/resizeCache' into beta X-Git-Tag: beta-20151122~86 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/f1113a67c5a683e546518d0f964067f59f50ab28?hp=a8df1430c3666119cde2c1d445d49cd32559aa3f Merge remote-tracking branch 'remotes/upstream/resizeCache' into beta --- diff --git a/CHANGELOG.md b/CHANGELOG.md index 88183ad6..4783e307 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ - PR [#1100](https://github.com/owncloud/android/pull/1100) "Material FAB with speed dial implementation" merged - PR [#1209](https://github.com/owncloud/android/pull/1209) "Material buttons - before in #1090" merged - PR [#1205](https://github.com/owncloud/android/pull/1205) "Switch between online and offline files" merged +- PR [#1195](https://github.com/owncloud/android/pull/1195) "Resize Cache" merged # 2015-10-26 diff --git a/res/values/strings.xml b/res/values/strings.xml index efc87f45..7f88cd79 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -368,4 +368,7 @@ %1$d files, %2$d folders Switch to grid view Switch to list view + Common + Cache size + diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 5c853fe4..842579bb 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -85,14 +85,24 @@ - - - - + + + + + + - + + + + + + + diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index e8496951..3586fd58 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -147,6 +147,28 @@ 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 long getMaxSize(){ + if (mThumbnailCache != null) { + return mThumbnailCache.getMaxSize(); + } else { + return -1l; + } + } + public static class ThumbnailGenerationTask extends AsyncTask { private final WeakReference mImageViewReference; private WeakReference mProgressWheelRef; diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index d980b977..2ffcc86e 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,27 @@ public class Preferences extends PreferenceActivity } + final Preference pCacheSize = findPreference("pref_cache_size"); + if (pCacheSize != null){ + final SharedPreferences appPrefs = + PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); + Long cacheSize = ThumbnailsCacheManager.getMaxSize(); + pCacheSize.setSummary(cacheSize + " Mb"); + pCacheSize.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + Long size = Long.decode((String) newValue); + 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 ab80aef2..5a53a866 100644 --- a/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java +++ b/src/com/owncloud/android/ui/adapter/DiskLruImageCache.java @@ -193,4 +193,12 @@ public class DiskLruImageCache { e.printStackTrace(); } } + + public void setMaxSize(long maxSize){ + mDiskCache.setMaxSize(maxSize); + } + + public long getMaxSize(){ + return mDiskCache.getMaxSize(); + } } \ No newline at end of file