Skip to content

Commit

Permalink
nf: extract gesture loading to class
Browse files Browse the repository at this point in the history
Gets closer to fixing 6052
  • Loading branch information
david-allison committed Jun 25, 2021
1 parent 1a7f7e7 commit d825cab
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1920,8 +1920,8 @@ protected SharedPreferences restorePreferences() {
mLinkOverridesTouchGesture = preferences.getBoolean("linkOverridesTouchGesture", false);
if (mGesturesEnabled) {
mGestureProcessor.init(preferences);
mGestureVolumeUp = ViewerCommand.fromString(preferences.getString("gestureVolumeUp", "0"));
mGestureVolumeDown = ViewerCommand.fromString(preferences.getString("gestureVolumeDown", "0"));
mGestureVolumeUp = Gesture.VOLUME_UP.fromPreference(preferences);
mGestureVolumeDown = Gesture.VOLUME_DOWN.fromPreference(preferences);
}

if (preferences.getBoolean("keepScreenOn", false)) {
Expand Down
48 changes: 32 additions & 16 deletions AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/Gesture.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,22 +15,38 @@
*/
package com.ichi2.anki.cardviewer

import android.content.SharedPreferences
import com.ichi2.anki.R

enum class Gesture(@get:JvmName("getResourceId") val mResourceId: Int) {
SWIPE_UP(R.string.gestures_swipe_up),
SWIPE_DOWN(R.string.gestures_swipe_down),
SWIPE_LEFT(R.string.gestures_swipe_left),
SWIPE_RIGHT(R.string.gestures_swipe_right),
LONG_TAP(R.string.gestures_long_tap),
DOUBLE_TAP(R.string.gestures_double_tap),
TAP_TOP_LEFT(R.string.gestures_corner_tap_top_left),
TAP_TOP(R.string.gestures_tap_top),
TAP_TOP_RIGHT(R.string.gestures_corner_tap_top_right),
TAP_LEFT(R.string.gestures_tap_left),
TAP_CENTER(R.string.gestures_corner_tap_middle_center),
TAP_RIGHT(R.string.gestures_tap_right),
TAP_BOTTOM_LEFT(R.string.gestures_corner_tap_bottom_left),
TAP_BOTTOM(R.string.gestures_tap_bottom),
TAP_BOTTOM_RIGHT(R.string.gestures_corner_tap_bottom_right);
// TODO: Code and preference defaults are inconsistent: #8066
enum class Gesture(
@get:JvmName("getResourceId") val mResourceId: Int,
private val mPreferenceKey: String,
private val mPreferenceDefault: ViewerCommand
) {
SWIPE_UP(R.string.gestures_swipe_up, "gestureSwipeUp", ViewerCommand.COMMAND_EDIT),
SWIPE_DOWN(R.string.gestures_swipe_down, "gestureSwipeDown", ViewerCommand.COMMAND_NOTHING),
SWIPE_LEFT(R.string.gestures_swipe_left, "gestureSwipeLeft", ViewerCommand.COMMAND_UNDO),
SWIPE_RIGHT(R.string.gestures_swipe_right, "gestureSwipeRight", ViewerCommand.COMMAND_EXIT),
LONG_TAP(R.string.gestures_long_tap, "gestureLongclick", ViewerCommand.COMMAND_LOOKUP),
DOUBLE_TAP(R.string.gestures_double_tap, "gestureDoubleTap", ViewerCommand.COMMAND_FLIP_OR_ANSWER_BETTER_THAN_RECOMMENDED),
TAP_TOP_LEFT(R.string.gestures_corner_tap_top_left, "gestureTapTopLeft", ViewerCommand.COMMAND_NOTHING),
TAP_TOP(R.string.gestures_tap_top, "gestureTapTop", ViewerCommand.COMMAND_BURY_CARD),
TAP_TOP_RIGHT(R.string.gestures_corner_tap_top_right, "gestureTapTopRight", ViewerCommand.COMMAND_NOTHING),
TAP_LEFT(R.string.gestures_tap_left, "gestureTapLeft", ViewerCommand.COMMAND_FLIP_OR_ANSWER_EASE2),
TAP_CENTER(R.string.gestures_corner_tap_middle_center, "gestureTapCenter", ViewerCommand.COMMAND_NOTHING),
TAP_RIGHT(R.string.gestures_tap_right, "gestureTapRight", ViewerCommand.COMMAND_FLIP_OR_ANSWER_RECOMMENDED),
TAP_BOTTOM_LEFT(R.string.gestures_corner_tap_bottom_left, "gestureTapBottomLeft", ViewerCommand.COMMAND_NOTHING),
TAP_BOTTOM(R.string.gestures_tap_bottom, "gestureTapBottom", ViewerCommand.COMMAND_FLIP_OR_ANSWER_EASE1),
TAP_BOTTOM_RIGHT(R.string.gestures_corner_tap_bottom_right, "gestureTapBottomRight", ViewerCommand.COMMAND_NOTHING),
VOLUME_UP(R.string.gestures_volume_up, "gestureVolumeUp", ViewerCommand.COMMAND_NOTHING),
VOLUME_DOWN(R.string.gestures_volume_down, "gestureVolumeDown", ViewerCommand.COMMAND_NOTHING);

fun fromPreference(prefs: SharedPreferences): ViewerCommand {
val value = prefs.getString(mPreferenceKey, null) ?: return mPreferenceDefault

val valueAsInt = Integer.parseInt(value)

return ViewerCommand.fromInt(valueAsInt) ?: mPreferenceDefault
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,28 +51,28 @@ public GestureProcessor(ViewerCommand.CommandProcessor processor) {

public void init(SharedPreferences preferences) {
mEnabled = preferences.getBoolean("gestures", false);
mGestureDoubleTap = ViewerCommand.fromString(preferences.getString("gestureDoubleTap", "7"));
mGestureLongclick = ViewerCommand.fromString(preferences.getString("gestureLongclick", "11"));
mGestureDoubleTap = Gesture.DOUBLE_TAP.fromPreference(preferences);
mGestureLongclick = Gesture.LONG_TAP.fromPreference(preferences);

mGestureSwipeUp = ViewerCommand.fromString(preferences.getString("gestureSwipeUp", "9"));
mGestureSwipeDown = ViewerCommand.fromString(preferences.getString("gestureSwipeDown", "0"));
mGestureSwipeLeft = ViewerCommand.fromString(preferences.getString("gestureSwipeLeft", "8"));
mGestureSwipeRight = ViewerCommand.fromString(preferences.getString("gestureSwipeRight", "17"));
mGestureSwipeUp = Gesture.SWIPE_UP.fromPreference(preferences);
mGestureSwipeDown = Gesture.SWIPE_DOWN.fromPreference(preferences);
mGestureSwipeLeft = Gesture.SWIPE_LEFT.fromPreference(preferences);
mGestureSwipeRight = Gesture.SWIPE_RIGHT.fromPreference(preferences);

mGestureMapper.init(preferences);

mGestureTapLeft = ViewerCommand.fromString(preferences.getString("gestureTapLeft", "3"));
mGestureTapRight = ViewerCommand.fromString(preferences.getString("gestureTapRight", "6"));
mGestureTapTop = ViewerCommand.fromString(preferences.getString("gestureTapTop", "12"));
mGestureTapBottom = ViewerCommand.fromString(preferences.getString("gestureTapBottom", "2"));
mGestureTapLeft = Gesture.TAP_LEFT.fromPreference(preferences);
mGestureTapRight = Gesture.TAP_RIGHT.fromPreference(preferences);
mGestureTapTop = Gesture.TAP_TOP.fromPreference(preferences);
mGestureTapBottom = Gesture.TAP_BOTTOM.fromPreference(preferences);

boolean useCornerTouch = preferences.getBoolean("gestureCornerTouch", false);
if (useCornerTouch) {
mGestureTapTopLeft = ViewerCommand.fromString(preferences.getString("gestureTapTopLeft", "0"));
mGestureTapTopRight = ViewerCommand.fromString(preferences.getString("gestureTapTopRight", "0"));
mGestureTapCenter = ViewerCommand.fromString(preferences.getString("gestureTapCenter", "0"));
mGestureTapBottomLeft = ViewerCommand.fromString(preferences.getString("gestureTapBottomLeft", "0"));
mGestureTapBottomRight = ViewerCommand.fromString(preferences.getString("gestureTapBottomRight", "0"));
mGestureTapTopLeft = Gesture.TAP_TOP_LEFT.fromPreference(preferences);
mGestureTapTopRight = Gesture.TAP_TOP_RIGHT.fromPreference(preferences);
mGestureTapCenter = Gesture.TAP_CENTER.fromPreference(preferences);
mGestureTapBottomLeft = Gesture.TAP_BOTTOM_LEFT.fromPreference(preferences);
mGestureTapBottomRight = Gesture.TAP_BOTTOM_RIGHT.fromPreference(preferences);
}
}

Expand Down

0 comments on commit d825cab

Please # to comment.