From d24e805f9f877021b1de8ef073f6f5bbd85d1477 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 9 Sep 2019 09:46:54 +0200 Subject: [PATCH] Separated list and thread sorting --- app/src/main/java/eu/faircode/email/ApplicationEx.java | 5 +++++ .../main/java/eu/faircode/email/FragmentMessages.java | 9 ++++++--- .../main/java/eu/faircode/email/ViewModelMessages.java | 6 ++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index 25e0e20a40..7fcf60bc0c 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -139,6 +139,11 @@ public class ApplicationEx extends Application { String theme = prefs.getString("theme", "light"); if ("grey".equals(theme)) editor.putString("theme", "grey_dark"); + + if (prefs.contains("ascending")) { + editor.putBoolean("ascending_list", prefs.getBoolean("ascending", false)); + editor.remove("ascending"); + } } if (BuildConfig.DEBUG && false) { diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 365f293e51..71f1e52825 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -588,7 +588,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. boolean compact = prefs.getBoolean("compact", false); int zoom = prefs.getInt("zoom", compact ? 0 : 1); String sort = prefs.getString("sort", "time"); - boolean ascending = prefs.getBoolean("ascending", false); + boolean ascending = prefs.getBoolean( + viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false); boolean filter_duplicates = prefs.getBoolean("filter_duplicates", false); adapter = new AdapterMessage(this, type, viewType, compact, zoom, sort, ascending, filter_duplicates, iProperties); @@ -2470,7 +2471,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. public void onPrepareOptionsMenu(Menu menu) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); String sort = prefs.getString("sort", "time"); - boolean ascending = prefs.getBoolean("ascending", false); + boolean ascending = prefs.getBoolean( + viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false); boolean filter_seen = prefs.getBoolean("filter_seen", false); boolean filter_unflagged = prefs.getBoolean("filter_unflagged", false); boolean filter_snoozed = prefs.getBoolean("filter_snoozed", true); @@ -2657,7 +2659,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. private void onMenuAscending(boolean ascending) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - prefs.edit().putBoolean("ascending", ascending).apply(); + prefs.edit().putBoolean( + viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", ascending).apply(); adapter.setAscending(ascending); getActivity().invalidateOptionsMenu(); loadMessages(true); diff --git a/app/src/main/java/eu/faircode/email/ViewModelMessages.java b/app/src/main/java/eu/faircode/email/ViewModelMessages.java index c83845ee17..35dd87855e 100644 --- a/app/src/main/java/eu/faircode/email/ViewModelMessages.java +++ b/app/src/main/java/eu/faircode/email/ViewModelMessages.java @@ -63,7 +63,7 @@ public class ViewModelMessages extends ViewModel { String thread, long id, String query, boolean server) { - Args args = new Args(context, type, account, folder, thread, id, query, server); + Args args = new Args(context, viewType, type, account, folder, thread, id, query, server); Log.i("Get model=" + viewType + " " + args); dump(); @@ -309,6 +309,7 @@ public class ViewModelMessages extends ViewModel { private boolean debug; Args(Context context, + AdapterMessage.ViewType viewType, String type, long account, long folder, String thread, long id, String query, boolean server) { @@ -324,7 +325,8 @@ public class ViewModelMessages extends ViewModel { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); this.threading = prefs.getBoolean("threading", true); this.sort = prefs.getString("sort", "time"); - this.ascending = prefs.getBoolean("ascending", false); + this.ascending = prefs.getBoolean( + viewType == AdapterMessage.ViewType.THREAD ? "ascending_thread" : "ascending_list", false); this.filter_seen = prefs.getBoolean("filter_seen", false); this.filter_unflagged = prefs.getBoolean("filter_unflagged", false); this.filter_snoozed = prefs.getBoolean("filter_snoozed", true);