From 8f5bdc017627060d92520f0b6a3ba799a8621e9f Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 26 Sep 2023 11:32:26 +0200 Subject: [PATCH] Added option for up/down navigation button --- .../java/eu/faircode/email/FragmentMessages.java | 8 ++++++++ .../java/eu/faircode/email/FragmentOptions.java | 2 +- .../eu/faircode/email/FragmentOptionsBehavior.java | 12 +++++++++++- .../main/res/layout/fragment_options_behavior.xml | 13 ++++++++++++- app/src/main/res/values/strings.xml | 1 + 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index f63fd3813a..05edae1905 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1345,6 +1345,14 @@ public class FragmentMessages extends FragmentBase } }); + if (prefs.getBoolean("updown", false)) { + boolean reversed = prefs.getBoolean("reversed", false); + bottom_navigation.getMenu().findItem(R.id.action_prev) + .setIcon(reversed ? R.drawable.baseline_arrow_upward_24 : R.drawable.baseline_arrow_downward_24); + bottom_navigation.getMenu().findItem(R.id.action_next) + .setIcon(reversed ? R.drawable.baseline_arrow_downward_24 : R.drawable.baseline_arrow_upward_24); + } + bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 9adde48b8f..98bc139c97 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -154,7 +154,7 @@ public class FragmentOptions extends FragmentBase { "background_color", "text_color", "text_size", "text_font", "text_align", "text_titles", "text_separators", "collapse_quotes", "image_placeholders", "inline_images", "seekbar", "actionbar", "actionbar_swap", "actionbar_color", "group_category", - "autoscroll", "swipenav", "reversed", "swipe_close", "swipe_move", "autoexpand", "autoclose", "onclose", + "autoscroll", "swipenav", "updown", "reversed", "swipe_close", "swipe_move", "autoexpand", "autoclose", "onclose", "auto_hide_answer", "swipe_reply", "move_thread_all", "move_thread_sent", "language_detection", diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index b9fbad6fa3..5f7e1c57f7 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -74,6 +74,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swDoubleTap; private SwitchCompat swSwipeNav; private SwitchCompat swVolumeNav; + private SwitchCompat swUpDown; private SwitchCompat swReversed; private SwitchCompat swSwipeClose; private SwitchCompat swSwipeMove; @@ -116,7 +117,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe "restore_on_launch", "sync_on_launch", "double_back", "conversation_actions", "conversation_actions_replies", "language_detection", "photo_picker", "default_snooze", "pull", "pull_all", "autoscroll", "quick_filter", "quick_scroll", "quick_actions", "swipe_sensitivity", "foldernav", - "doubletap", "swipenav", "volumenav", "reversed", "swipe_close", "swipe_move", + "doubletap", "swipenav", "volumenav", "updown", "reversed", "swipe_close", "swipe_move", "autoexpand", "expand_first", "expand_all", "expand_one", "collapse_multiple", "autoclose", "onclose", "autoclose_unseen", "autoclose_send", "collapse_marked", "undo_timeout", @@ -157,6 +158,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swDoubleTap = view.findViewById(R.id.swDoubleTap); swSwipeNav = view.findViewById(R.id.swSwipeNav); swVolumeNav = view.findViewById(R.id.swVolumeNav); + swUpDown = view.findViewById(R.id.swUpDown); swReversed = view.findViewById(R.id.swReversed); swSwipeClose = view.findViewById(R.id.swSwipeClose); swSwipeMove = view.findViewById(R.id.swSwipeMove); @@ -371,6 +373,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swUpDown.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("updown", checked).apply(); + } + }); + swReversed.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -694,6 +703,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swDoubleTap.setChecked(prefs.getBoolean("doubletap", false)); swSwipeNav.setChecked(prefs.getBoolean("swipenav", true)); swVolumeNav.setChecked(prefs.getBoolean("volumenav", false)); + swUpDown.setChecked(prefs.getBoolean("updown", false)); swReversed.setChecked(prefs.getBoolean("reversed", false)); swSwipeClose.setChecked(prefs.getBoolean("swipe_close", false)); swSwipeMove.setChecked(prefs.getBoolean("swipe_move", false)); diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index d621a61052..888eba9906 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -446,6 +446,17 @@ app:layout_constraintTop_toBottomOf="@id/swSwipeNav" app:switchPadding="12dp" /> + + Double tap to mark message read/unread Swipe left/right to go to next/previous conversation Volume up/down to go to next/previous conversation + Use up/down arrows for next/previous conversation Reverse navigation direction Swipe down to close conversation Swipe up to move conversation