Skip to content

Commit de76c65

Browse files
BrayanDSOlukstbit
authored andcommitted
feat(new study screen): replay media command/menu action
1 parent 7528ae1 commit de76c65

3 files changed

Lines changed: 10 additions & 0 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ViewerAction.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ enum class ViewerAction(
7474
RESCHEDULE_NOTE(R.id.action_set_due_date, R.drawable.ic_reschedule, titleRes = R.string.empty_string, DISABLED),
7575
TOGGLE_AUTO_ADVANCE(R.id.action_toggle_auto_advance, R.drawable.ic_fast_forward, R.string.toggle_auto_advance, DISABLED),
7676
RECORD_VOICE(R.id.action_record_voice, R.drawable.ic_action_mic, R.string.record_voice, DISABLED),
77+
PLAY_MEDIA(R.id.action_replay_media, R.drawable.ic_play_circle_white, R.string.replay_media, DISABLED),
7778
USER_ACTION_1(R.id.user_action_1, R.drawable.user_action_1, R.string.user_action_1, DISABLED),
7879
USER_ACTION_2(R.id.user_action_2, R.drawable.user_action_2, R.string.user_action_2, DISABLED),
7980
USER_ACTION_3(R.id.user_action_3, R.drawable.user_action_3, R.string.user_action_3, DISABLED),
@@ -142,6 +143,7 @@ enum class ViewerAction(
142143
REPLAY_VOICE -> listOf(keycode(KeyEvent.KEYCODE_V))
143144
BROWSE -> listOf(keycode(KeyEvent.KEYCODE_B))
144145
STATISTICS -> listOf(keycode(KeyEvent.KEYCODE_T))
146+
PLAY_MEDIA -> listOf(keycode(KeyEvent.KEYCODE_R))
145147
TOGGLE_FLAG_RED ->
146148
listOf(
147149
keycode(KeyEvent.KEYCODE_1, ctrl()),

AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import com.ichi2.anki.Flag
2727
import com.ichi2.anki.Reviewer
2828
import com.ichi2.anki.asyncIO
2929
import com.ichi2.anki.browser.BrowserDestination
30+
import com.ichi2.anki.cardviewer.SingleCardSide
3031
import com.ichi2.anki.common.time.TimeManager
3132
import com.ichi2.anki.launchCatchingIO
3233
import com.ichi2.anki.libanki.Card
@@ -627,6 +628,11 @@ class ReviewerViewModel :
627628
answerTimerStatusFlow.emit(AnswerTimerStatus.Running(limitInMillis))
628629
}
629630

631+
private suspend fun replayMedia() {
632+
val side = if (showingAnswer.value) SingleCardSide.BACK else SingleCardSide.FRONT
633+
cardMediaPlayer.replayAll(side)
634+
}
635+
630636
fun executeAction(action: ViewerAction) {
631637
Timber.v("ReviewerViewModel::executeAction %s", action.name)
632638
launchCatchingIO {
@@ -685,6 +691,7 @@ class ReviewerViewModel :
685691
ViewerAction.BURY_MENU -> buryCard()
686692
ViewerAction.STATISTICS -> destinationFlow.emit(StatisticsDestination())
687693
ViewerAction.BROWSE -> emitBrowseDestination()
694+
ViewerAction.PLAY_MEDIA -> replayMedia()
688695
ViewerAction.FLAG_MENU -> {}
689696
}
690697
}

AnkiDroid/src/main/res/values/ids.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
<item type="id" name="action_toggle_auto_advance"/>
4242
<item type="id" name="action_toggle_whiteboard"/>
4343
<item type="id" name="action_record_voice"/>
44+
<item type="id" name="action_replay_media"/>
4445
<item type="id" name="action_set_due_date"/>
4546
<item type="id" name="action_browse"/>
4647
<item type="id" name="action_statistics"/>

0 commit comments

Comments
 (0)