From: tobiasKaminsky Date: Sat, 14 Nov 2015 15:33:22 +0000 (+0100) Subject: Merge branch 'master' of github.com:owncloud/android into resizeCache X-Git-Tag: beta-20151129~5^2~1 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/0302a62af58cd305abd35ae5a6aab8a5e68329bf?hp=8331456825b5bc48f1566ba109b9a9504f67991c Merge branch 'master' of github.com:owncloud/android into resizeCache --- diff --git a/res/values/strings.xml b/res/values/strings.xml index 320eea1a..4ca286ce 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -368,6 +368,8 @@ %1$d files %1$d files, 1 folder %1$d files, %2$d folders + Common + Cache size Sharing Share with Users and Groups diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 4823a83f..7dfc63f2 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -53,7 +53,13 @@ android:summary="@string/prefs_log_summary_history"/ --> - + + + + + diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index f0ecf767..ded69926 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -140,6 +140,32 @@ 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; + } + } + + /** + * Shows max cache size + * @return max cache size in MB. + */ + public static long getMaxSize(){ + if (mThumbnailCache != null) { + return mThumbnailCache.getMaxSize() / 1024 / 1024; + } else { + return -1l; + } + } + 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..bb4a3282 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 0f2536f5..6fd5c5dc 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