Reverse navigation direction

This commit is contained in:
M66B 2019-09-17 11:31:28 +02:00
parent 8b699395ab
commit ddc282b675
5 changed files with 24 additions and 18 deletions

View File

@ -156,6 +156,12 @@ public class ApplicationEx extends Application {
editor.putBoolean("compose_media", false);
editor.remove("style_toolbar");
}
} else if (version < 709) {
if (prefs.getBoolean("swipe_reversed", false)) {
editor.putBoolean("reversed", true);
editor.remove("swipe_reversed");
}
}

View File

@ -644,6 +644,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
boolean reversed = prefs.getBoolean("reversed", false);
switch (menuItem.getItemId()) {
case R.id.action_delete:
onActionMove(EntityFolder.TRASH);
@ -658,11 +660,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return true;
case R.id.action_prev:
navigate(previous, true);
navigate(reversed ? next : previous, true);
return true;
case R.id.action_next:
navigate(next, false);
navigate(reversed ? previous : next, false);
return true;
default:
@ -947,8 +949,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
final SwipeListener swipeListener = new SwipeListener(getContext(), new SwipeListener.ISwipeListener() {
@Override
public boolean onSwipeRight() {
boolean rtl = prefs.getBoolean("swipe_reversed", false);
Long go = (rtl ? next : previous);
boolean reversed = prefs.getBoolean("reversed", false);
Long go = (reversed ? next : previous);
if (go == null) {
Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_right);
@ -961,8 +963,8 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
@Override
public boolean onSwipeLeft() {
boolean rtl = prefs.getBoolean("swipe_reversed", false);
Long go = (rtl ? previous : next);
boolean reversed = prefs.getBoolean("reversed", false);
Long go = (reversed ? previous : next);
if (go == null) {
Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_left);

View File

@ -43,7 +43,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private SwitchCompat swPull;
private SwitchCompat swAutoScroll;
private SwitchCompat swSwipeNav;
private SwitchCompat swSwipeReversed;
private SwitchCompat swReversed;
private SwitchCompat swDoubleTap;
private SwitchCompat swExpandRead;
private SwitchCompat swAutoExpand;
@ -57,7 +57,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private SwitchCompat swDisableTracking;
private final static String[] RESET_OPTIONS = new String[]{
"pull", "autoscroll", "swipenav", "swipe_reversed", "doubletap", "expand_read", "autoexpand", "expand_one", "autoclose", "onclose",
"pull", "autoscroll", "swipenav", "reversed", "doubletap", "expand_read", "autoexpand", "expand_one", "autoclose", "onclose",
"collapse", "autoread", "automove", "discard_delete", "disable_tracking"
};
@ -74,7 +74,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swPull = view.findViewById(R.id.swPull);
swAutoScroll = view.findViewById(R.id.swAutoScroll);
swSwipeNav = view.findViewById(R.id.swSwipeNav);
swSwipeReversed = view.findViewById(R.id.swSwipeReversed);
swReversed = view.findViewById(R.id.swReversed);
swDoubleTap = view.findViewById(R.id.swDoubleTap);
swExpandRead = view.findViewById(R.id.swExpandRead);
swAutoExpand = view.findViewById(R.id.swAutoExpand);
@ -111,14 +111,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("swipenav", checked).apply();
swSwipeReversed.setEnabled(checked);
}
});
swSwipeReversed.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
swReversed.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("swipe_reversed", checked).apply();
prefs.edit().putBoolean("reversed", checked).apply();
}
});
@ -259,8 +258,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swPull.setChecked(prefs.getBoolean("pull", true));
swAutoScroll.setChecked(prefs.getBoolean("autoscroll", false));
swSwipeNav.setChecked(prefs.getBoolean("swipenav", true));
swSwipeReversed.setChecked(prefs.getBoolean("swipe_reversed", false));
swSwipeReversed.setEnabled(swSwipeNav.isChecked());
swReversed.setChecked(prefs.getBoolean("reversed", false));
swDoubleTap.setChecked(prefs.getBoolean("doubletap", false));
swExpandRead.setChecked(prefs.getBoolean("expand_read", true));
swAutoExpand.setChecked(prefs.getBoolean("autoexpand", true));

View File

@ -47,12 +47,12 @@
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swSwipeReversed"
android:id="@+id/swReversed"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:checked="true"
android:text="@string/title_advanced_swipe_reversed"
android:text="@string/title_advanced_reversed"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swSwipeNav"
@ -66,7 +66,7 @@
android:text="@string/title_advanced_double_tap"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swSwipeReversed"
app:layout_constraintTop_toBottomOf="@id/swReversed"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat

View File

@ -263,7 +263,7 @@
<string name="title_advanced_pull_refresh">Pull down to refresh</string>
<string name="title_advanced_autoscroll">Scroll to top on receiving new messages</string>
<string name="title_advanced_swipenav">Swipe left/right to go to next/previous conversation</string>
<string name="title_advanced_swipe_reversed">Reverse swipe direction</string>
<string name="title_advanced_reversed">Reverse navigation direction</string>
<string name="title_advanced_double_tap">Double tap to mark message read/unread</string>
<string name="title_advanced_expand_read">Mark messages read on expanding</string>
<string name="title_advanced_autoexpand">Automatically expand messages</string>