diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index a6f739c4d8..62699472ba 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1982,6 +1982,17 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. } }; + @Override + public float getSwipeEscapeVelocity(float defaultValue) { + int swipe_sensitivity = 10; + Context context = getContext(); + if (context != null) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + swipe_sensitivity = prefs.getInt("swipe_sensitivity", 10); + } + return super.getSwipeEscapeVelocity(defaultValue) * (10 - swipe_sensitivity + 1); + } + @Override public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { int pos = viewHolder.getAdapterPosition(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 3879c1eb97..2baf9f24be 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -40,6 +40,7 @@ import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.CompoundButton; import android.widget.EditText; +import android.widget.SeekBar; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; @@ -67,6 +68,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swQuickFilter; private SwitchCompat swQuickScroll; private Button btnSwipes; + private SeekBar sbSwipeSensitivity; private SwitchCompat swDoubleTap; private SwitchCompat swSwipeNav; private SwitchCompat swVolumeNav; @@ -92,7 +94,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private final static String[] RESET_OPTIONS = new String[]{ "sync_on_launch", "double_back", "conversation_actions", "conversation_actions_replies", "language_detection", "default_snooze", - "pull", "autoscroll", "quick_filter", "quick_scroll", + "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", "undo_timeout", @@ -120,6 +122,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swQuickFilter = view.findViewById(R.id.swQuickFilter); swQuickScroll = view.findViewById(R.id.swQuickScroll); btnSwipes = view.findViewById(R.id.btnSwipes); + sbSwipeSensitivity = view.findViewById(R.id.sbSwipeSensitivity); swDoubleTap = view.findViewById(R.id.swDoubleTap); swSwipeNav = view.findViewById(R.id.swSwipeNav); swVolumeNav = view.findViewById(R.id.swVolumeNav); @@ -246,6 +249,23 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + sbSwipeSensitivity.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + prefs.edit().putInt("swipe_sensitivity", progress).apply(); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + // Do nothing + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + // Do nothing + } + }); + swDoubleTap.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -467,6 +487,9 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swQuickFilter.setChecked(prefs.getBoolean("quick_filter", false)); swQuickScroll.setChecked(prefs.getBoolean("quick_scroll", true)); + int swipe_sensitivity = prefs.getInt("swipe_sensitivity", 10); + sbSwipeSensitivity.setProgress(swipe_sensitivity); + swDoubleTap.setChecked(prefs.getBoolean("doubletap", true)); swSwipeNav.setChecked(prefs.getBoolean("swipenav", true)); swVolumeNav.setChecked(prefs.getBoolean("volumenav", false)); diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index d4b0ebd69a..aafc3363c8 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -271,6 +271,29 @@ android:text="@string/title_advanced_swipe_actions" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swQuickScroll" /> + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a8dc98dd65..7dae64bc11 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -710,6 +710,7 @@ Set swipe actions This will set the swipe left and right action for all IMAP accounts + Left/right swipe sensitivity Select … Your name