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