Skip to content

Commit

Permalink
Allow to disable long, double actions
Browse files Browse the repository at this point in the history
  • Loading branch information
max-kammerer committed Jun 24, 2024
1 parent 995c09a commit 5ea8c32
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -248,6 +248,8 @@ class GlobalOptions(

private const val RECENT_PREFIX = "recent_"

const val DISABLE = "DISABLE"

const val SWAP_KEYS: String = "SWAP_KEYS"

const val DEFAULT_ZOOM: String = "DEFAULT_ZOOM"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import universe.constellation.orion.viewer.OrionViewerActivity
import universe.constellation.orion.viewer.log
import universe.constellation.orion.viewer.view.OrionDrawScene
import universe.constellation.orion.viewer.dpToPixels
import universe.constellation.orion.viewer.prefs.GlobalOptions
import kotlin.math.abs

enum class State {
Expand Down Expand Up @@ -70,7 +71,10 @@ open class NewTouchProcessor(val view: OrionDrawScene, val activity: OrionViewer
private var isFlingActiveOnDown = false

init {
detector.setIsLongpressEnabled(true)
activity.globalOptions.LONG_TAP_ACTION.observe(activity) {
detector.setIsLongpressEnabled(it != GlobalOptions.DISABLE)
}

detector.setOnDoubleTapListener(this)
}

Expand Down Expand Up @@ -121,7 +125,7 @@ open class NewTouchProcessor(val view: OrionDrawScene, val activity: OrionViewer
flingAnim.cancel()
}

log("onDown")
log("gesture: onDown")
return true
}

Expand All @@ -145,7 +149,7 @@ open class NewTouchProcessor(val view: OrionDrawScene, val activity: OrionViewer
}

override fun onScroll(e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean {
log("onScroll $enableTouchMove")
log("gesture: onScroll $enableTouchMove")
if (!enableTouchMove) {
return false
}
Expand All @@ -154,19 +158,38 @@ open class NewTouchProcessor(val view: OrionDrawScene, val activity: OrionViewer
return true
}

override fun onSingleTapUp(e: MotionEvent): Boolean {
if (activity.globalOptions.DOUBLE_TAP_ACTION.value == GlobalOptions.DISABLE) {
return processSingleTap(e, "onSingleTapUp")
}
return false
}


override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
if (activity.globalOptions.DOUBLE_TAP_ACTION.value != GlobalOptions.DISABLE) {
return processSingleTap(e, "onSingleTapConfirmed")
}
return false
}

private fun processSingleTap(e: MotionEvent, msg: String): Boolean {
if (isFlingActiveOnDown) {
return true
}

log("onSingleTapConfirmed")
log("processSingleTap: $msg")
resetNextState()
doAction(ContextAction.TAP_ACTION, e, ClickType.SHORT)
return true
}

override fun onDoubleTap(e: MotionEvent): Boolean {
log("onDoubleTap")
if (activity.globalOptions.DOUBLE_TAP_ACTION.value == GlobalOptions.DISABLE) {
return processSingleTap(e, "onDoubleTap skipped")
}

log("gesture: onDoubleTap")
nextState = State.DOUBLE_TAP
doAction(
ContextAction.findAction(activity.globalOptions.DOUBLE_TAP_ACTION.value),
Expand All @@ -181,7 +204,7 @@ open class NewTouchProcessor(val view: OrionDrawScene, val activity: OrionViewer
return
}

log("onLongPress $state $nextState")
log("gesture: onLongPress $state $nextState")
if (state != State.UNDEFINED) return
doAction(
ContextAction.findAction(activity.globalOptions.LONG_TAP_ACTION.value),
Expand Down
1 change: 1 addition & 0 deletions orion-viewer/src/main/res/values-ru/actions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
<string name="action_select_word">Выделить слово</string>
<string name="action_select_word_and_translate">Выделить слово и перевести</string>
<string name="action_tap_action">Действие тап-зоны</string>
<string name="action_disable">Отключить</string>

<string name="action_fit_height">Масштабировать по высоте страницы</string>
<string name="action_fit_page">Масштабировать по странице</string>
Expand Down
1 change: 1 addition & 0 deletions orion-viewer/src/main/res/values/action_code.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,5 @@
<string name="action_key_select_text_new" translatable="false">SELECT_TEXT</string>
<string name="action_key_select_word_and_translate_new" translatable="false">SELECT_WORD_AND_TRANSLATE</string>
<string name="action_key_tap_action" translatable="false">TAP_ACTION</string>
<string name="action_key_disable" translatable="false">DISABLE</string>
</resources>
1 change: 1 addition & 0 deletions orion-viewer/src/main/res/values/actions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
<string name="action_select_word">Select word</string>
<string name="action_select_word_and_translate">Select word and translate</string>
<string name="action_tap_action">Tap zone action</string>
<string name="action_disable">Disable</string>

<string name="action_fit_width">Fit Width</string>
<string name="action_fit_height">Fit Height</string>
Expand Down
4 changes: 4 additions & 0 deletions orion-viewer/src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -208,24 +208,28 @@
<item>@string/action_key_select_text_new</item>
<item>@string/action_key_select_word_and_translate_new</item>
<item>@string/action_key_tap_action</item>
<item>@string/action_key_disable</item>
</string-array>

<string-array name="context_actions_desc_full">
<item>@string/action_select_text</item>
<item>@string/action_select_word_and_translate</item>
<item>@string/action_tap_action</item>
<item>@string/action_disable</item>
</string-array>

<string-array name="context_actions_values">
<item>@string/action_key_select_text_new</item>
<item>@string/action_key_select_word_and_translate_new</item>
<item>@string/action_key_tap_action</item>
<item>@string/action_key_disable</item>
</string-array>

<string-array name="context_actions_desc">
<item>@string/action_select_text</item>
<item>@string/action_select_word_and_translate</item>
<item>@string/action_tap_action</item>
<item>@string/action_disable</item>
</string-array>

</resources>

0 comments on commit 5ea8c32

Please sign in to comment.