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