Added setting for left/right swipe sensitivity

This commit is contained in:
M66B 2021-07-26 21:12:03 +02:00
parent 79f13e4034
commit d98b4372c0
4 changed files with 59 additions and 1 deletions

View File

@ -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();

View File

@ -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));

View File

@ -271,6 +271,29 @@
android:text="@string/title_advanced_swipe_actions"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swQuickScroll" />
<eu.faircode.email.FixedTextView
android:id="@+id/tvSwipeSensitivity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_swipe_sensitivity"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/btnSwipes" />
<SeekBar
android:id="@+id/sbSwipeSensitivity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:max="10"
android:min="1"
android:progress="10"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvSwipeSensitivity" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>

View File

@ -710,6 +710,7 @@
<string name="title_advanced_swipe_actions">Set swipe actions</string>
<string name="title_advanced_swipe_actions_hint">This will set the swipe left and right action for all IMAP accounts</string>
<string name="title_advanced_swipe_sensitivity">Left/right swipe sensitivity</string>
<string name="title_select">Select &#8230;</string>
<string name="title_identity_name">Your name</string>