Added option to disable collapsing on marking read/unread

This commit is contained in:
M66B
2021-09-29 09:41:32 +02:00
parent 0e278dc566
commit 648728d1fa
4 changed files with 30 additions and 5 deletions

View File

@@ -286,6 +286,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
private boolean authentication_indicator;
private boolean autoclose_unseen;
private boolean collapse_marked;
private boolean language_detection;
private List<String> languages;
@@ -4989,10 +4990,10 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
message.ui_seen = args.getBoolean("seen");
message.unseen = (message.ui_seen ? 0 : message.count);
if (!message.ui_seen &&
(autoclose_unseen || getItemCount() == 1))
if (!message.ui_seen && autoclose_unseen)
properties.finish();
else
else if (collapse_marked)
properties.setExpanded(message, false, true);
}
@@ -5923,6 +5924,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
this.authentication_indicator = prefs.getBoolean("authentication_indicator", false);
this.language_detection = prefs.getBoolean("language_detection", false);
this.autoclose_unseen = prefs.getBoolean("autoclose_unseen", false);
this.collapse_marked = prefs.getBoolean("collapse_marked", true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
languages = new ArrayList<>();

View File

@@ -84,6 +84,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private TextView tvOnClose;
private Spinner spOnClose;
private SwitchCompat swAutoCloseUnseen;
private SwitchCompat swCollapseMarked;
private Spinner spUndoTimeout;
private SwitchCompat swCollapseMultiple;
private SwitchCompat swAutoRead;
@@ -101,7 +102,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
"pull", "autoscroll", "quick_filter", "quick_scroll", "swipe_sensitivity",
"doubletap", "swipenav", "volumenav", "reversed", "swipe_close", "swipe_move",
"autoexpand", "expand_first", "expand_all", "expand_one", "collapse_multiple",
"autoclose", "onclose", "autoclose_unseen",
"autoclose", "onclose", "autoclose_unseen", "collapse_marked",
"undo_timeout",
"autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance"
};
@@ -144,6 +145,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
tvOnClose = view.findViewById(R.id.tvOnClose);
spOnClose = view.findViewById(R.id.spOnClose);
swAutoCloseUnseen = view.findViewById(R.id.swAutoCloseUnseen);
swCollapseMarked = view.findViewById(R.id.swCollapseMarked);
spUndoTimeout = view.findViewById(R.id.spUndoTimeout);
swAutoRead = view.findViewById(R.id.swAutoRead);
swFlagSnoozed = view.findViewById(R.id.swFlagSnoozed);
@@ -396,6 +398,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
}
});
swCollapseMarked.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("collapse_marked", checked).apply();
}
});
spUndoTimeout.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
@@ -535,6 +544,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
spOnClose.setEnabled(!swAutoClose.isChecked());
swAutoCloseUnseen.setChecked(prefs.getBoolean("autoclose_unseen", false));
swCollapseMarked.setChecked(prefs.getBoolean("collapse_marked", true));
int undo_timeout = prefs.getInt("undo_timeout", 5000);
int[] undoValues = getResources().getIntArray(R.array.undoValues);