diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
index d2f8c95c37..75cc5b7dd7 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java
@@ -184,6 +184,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private SeekBar sbSqliteCache;
private ImageButton ibSqliteCache;
private SwitchCompat swLegacyQueries;
+ private SwitchCompat swCacheLists;
private SwitchCompat swOauthTabs;
private TextView tvStartDelay;
private SeekBar sbStartDelay;
@@ -290,7 +291,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
"emergency_file", "work_manager", "task_description", // "external_storage",
"sqlite_integrity_check", "wal", "sqlite_checkpoints", "sqlite_analyze", "sqlite_auto_vacuum", "sqlite_sync_extra", "sqlite_cache",
"legacy_queries",
- "oauth_tabs",
+ "cache_lists", "oauth_tabs",
"start_delay", "chunk_size", "thread_range",
"autoscroll_editor", "undo_manager",
"browser_zoom", "fake_dark",
@@ -442,6 +443,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
sbSqliteCache = view.findViewById(R.id.sbSqliteCache);
ibSqliteCache = view.findViewById(R.id.ibSqliteCache);
swLegacyQueries = view.findViewById(R.id.swLegacyQueries);
+ swCacheLists = view.findViewById(R.id.swCacheLists);
swOauthTabs = view.findViewById(R.id.swOauthTabs);
tvStartDelay = view.findViewById(R.id.tvStartDelay);
sbStartDelay = view.findViewById(R.id.sbStartDelay);
@@ -1288,6 +1290,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
}
});
+ swCacheLists.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ @Override
+ public void onCheckedChanged(CompoundButton v, boolean checked) {
+ prefs.edit().putBoolean("cache_lists", checked).apply();
+ }
+ });
+
swOauthTabs.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton v, boolean checked) {
@@ -2431,7 +2440,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
sbSqliteCache.setProgress(sqlite_cache);
swLegacyQueries.setChecked(prefs.getBoolean("legacy_queries", false));
-
+ swCacheLists.setChecked(prefs.getBoolean("cache_lists", true));
swOauthTabs.setChecked(prefs.getBoolean("oauth_tabs", true));
int start_delay = prefs.getInt("start_delay", 0);
diff --git a/app/src/main/java/eu/faircode/email/ViewModelMessages.java b/app/src/main/java/eu/faircode/email/ViewModelMessages.java
index 0bca433d05..7f5ead54da 100644
--- a/app/src/main/java/eu/faircode/email/ViewModelMessages.java
+++ b/app/src/main/java/eu/faircode/email/ViewModelMessages.java
@@ -90,6 +90,10 @@ public class ViewModelMessages extends ViewModel {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean legacy = prefs.getBoolean("legacy_queries", false);
+ boolean cache_lists = prefs.getBoolean("cache_lists", true);
+
+ if (!cache_lists)
+ models.clear();
Args args = new Args(context,
viewType, type, account, folder,
@@ -303,6 +307,8 @@ public class ViewModelMessages extends ViewModel {
Log.i("Last model=" + last);
}
+ Helper.gc("model:get");
+
Log.i("Returning model=" + viewType);
dump();
diff --git a/app/src/main/res/layout/fragment_options_misc.xml b/app/src/main/res/layout/fragment_options_misc.xml
index e0bdf93190..7602d17437 100644
--- a/app/src/main/res/layout/fragment_options_misc.xml
+++ b/app/src/main/res/layout/fragment_options_misc.xml
@@ -1186,6 +1186,17 @@
app:layout_constraintTop_toBottomOf="@id/tvSqliteCacheHint"
app:switchPadding="12dp" />
+
+
sqlite sync extra
sqlite cache: %1$s %% - %2$s
Legacy queries
+ Cache lists
OAuth tabs
Start delay: %1$d s
Chunk size: %1$d