diff --git a/AnkiDroid/src/main/assets/scripts/ankidroid.js b/AnkiDroid/src/main/assets/scripts/ankidroid.js index a2dd0210bdbd..ba4659419d30 100644 --- a/AnkiDroid/src/main/assets/scripts/ankidroid.js +++ b/AnkiDroid/src/main/assets/scripts/ankidroid.js @@ -13,3 +13,19 @@ globalThis.ankidroid.userAction = function (number) { alert(e); } }; + +globalThis.ankidroid.showHint = function () { + var hints = document.querySelectorAll("a.hint"); + for (var i = 0; i < hints.length; i++) { + if (hints[i].style.display != "none") { + hints[i].click(); + break; + } + } +}; + +globalThis.ankidroid.showAllHints = function () { + document.querySelectorAll("a.hint").forEach(el => { + el.click(); + }); +}; diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ViewerAction.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ViewerAction.kt index 33da82d8bca7..bc4d22ce3370 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ViewerAction.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ViewerAction.kt @@ -98,6 +98,8 @@ enum class ViewerAction( FLIP_OR_ANSWER_EASE2, FLIP_OR_ANSWER_EASE3, FLIP_OR_ANSWER_EASE4, + SHOW_HINT, + SHOW_ALL_HINTS, ; override val preferenceKey: String get() = "binding_$name" @@ -119,6 +121,8 @@ enum class ViewerAction( SUSPEND_NOTE -> listOf(unicode('!')) SUSPEND_CARD -> listOf(unicode('@')) TOGGLE_AUTO_ADVANCE -> listOf(keycode(KeyEvent.KEYCODE_A, shift())) + SHOW_HINT -> listOf(keycode(KeyEvent.KEYCODE_H)) + SHOW_ALL_HINTS -> listOf(keycode(KeyEvent.KEYCODE_G)) FLIP_OR_ANSWER_EASE1 -> listOf( keycode(KeyEvent.KEYCODE_BUTTON_Y), diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt index 2781bae359ce..6df70945de3a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt @@ -514,6 +514,8 @@ class ReviewerViewModel( ViewerAction.FLIP_OR_ANSWER_EASE2 -> flipOrAnswer(Ease.HARD) ViewerAction.FLIP_OR_ANSWER_EASE3 -> flipOrAnswer(Ease.GOOD) ViewerAction.FLIP_OR_ANSWER_EASE4 -> flipOrAnswer(Ease.EASY) + ViewerAction.SHOW_HINT -> eval.emit("ankidroid.showHint()") + ViewerAction.SHOW_ALL_HINTS -> eval.emit("ankidroid.showAllHints()") ViewerAction.USER_ACTION_1 -> userAction(1) ViewerAction.USER_ACTION_2 -> userAction(2) ViewerAction.USER_ACTION_3 -> userAction(3)