Skip to content

Commit 65d0568

Browse files
committed
feat(new study screen): browse command/menu action
it improves the ecosystem compatibility. It also reduces any kind of complaints related to the new study screen not using a navigation drawer like the old one did
1 parent 36fd5fe commit 65d0568

File tree

6 files changed

+27
-0
lines changed

6 files changed

+27
-0
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,13 @@ class ControlsSettingsFragment :
136136
val key = getString(keyRes)
137137
findPreference<Preference>(key)?.isVisible = false
138138
}
139+
requirePreference<ControlPreference>(R.string.browse_command_key).apply {
140+
title = TR.qtMiscBrowse()
141+
isVisible = true
142+
if (value == null) {
143+
value = ViewerAction.BROWSE.getBindings(sharedPrefs()).toPreferenceString()
144+
}
145+
}
139146
requirePreference<ControlPreference>(R.string.statistics_command_key).apply {
140147
title = TR.statisticsTitle()
141148
isVisible = true

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ enum class ViewerAction(
6464
DELETE(R.id.action_delete, R.drawable.ic_delete_white, R.string.menu_delete_note, MENU_ONLY),
6565

6666
// Disabled
67+
BROWSE(R.id.action_browse, R.drawable.ic_flashcard_black, R.string.empty_string, DISABLED),
6768
STATISTICS(R.id.action_statistics, R.drawable.ic_bar_chart_black, R.string.empty_string, DISABLED),
6869
DECK_OPTIONS(R.id.action_deck_options, R.drawable.ic_tune_white, R.string.menu__deck_options, DISABLED),
6970
CARD_INFO(R.id.action_card_info, R.drawable.ic_dialog_info, R.string.card_info_title, DISABLED),
@@ -138,6 +139,7 @@ enum class ViewerAction(
138139
SHOW_ALL_HINTS -> listOf(keycode(KeyEvent.KEYCODE_G))
139140
RECORD_VOICE -> listOf(keycode(KeyEvent.KEYCODE_V, shift()))
140141
REPLAY_VOICE -> listOf(keycode(KeyEvent.KEYCODE_V))
142+
BROWSE -> listOf(keycode(KeyEvent.KEYCODE_B))
141143
STATISTICS -> listOf(keycode(KeyEvent.KEYCODE_T))
142144
TOGGLE_FLAG_RED ->
143145
listOf(
@@ -239,6 +241,7 @@ enum class ViewerAction(
239241

240242
fun title(context: Context): String =
241243
when (this) {
244+
BROWSE -> TR.qtMiscBrowse()
242245
STATISTICS -> TR.statisticsTitle()
243246
RESCHEDULE_NOTE -> TR.actionsSetDueDate().toSentenceCase(context, R.string.sentence_set_due_date)
244247
else -> context.getString(titleRes)

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import com.ichi2.anki.CollectionManager.withCol
2626
import com.ichi2.anki.Flag
2727
import com.ichi2.anki.Reviewer
2828
import com.ichi2.anki.asyncIO
29+
import com.ichi2.anki.browser.BrowserDestination
2930
import com.ichi2.anki.common.time.TimeManager
3031
import com.ichi2.anki.launchCatchingIO
3132
import com.ichi2.anki.libanki.Card
@@ -255,6 +256,13 @@ class ReviewerViewModel :
255256
destinationFlow.emit(destination)
256257
}
257258

259+
private suspend fun emitBrowseDestination() {
260+
val deckId = withCol { decks.getCurrentId() }
261+
val destination = BrowserDestination(deckId)
262+
Timber.i("Launching 'browse options' for deck %d", deckId)
263+
destinationFlow.emit(destination)
264+
}
265+
258266
private suspend fun deleteNote() {
259267
val cardId = currentCard.await().id
260268
val noteCount =
@@ -674,6 +682,7 @@ class ReviewerViewModel :
674682
ViewerAction.SUSPEND_MENU -> suspendCard()
675683
ViewerAction.BURY_MENU -> buryCard()
676684
ViewerAction.STATISTICS -> destinationFlow.emit(StatisticsDestination())
685+
ViewerAction.BROWSE -> emitBrowseDestination()
677686
ViewerAction.FLAG_MENU -> {}
678687
}
679688
}

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_record_voice"/>
4343
<item type="id" name="action_set_due_date"/>
44+
<item type="id" name="action_browse"/>
4445
<item type="id" name="action_statistics"/>
4546

4647
<item type="id" name="user_action_1"/>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
<string name="remove_flag_command_key">binding_UNSET_FLAG</string>
123123
<string name="page_up_command_key">binding_PAGE_UP</string>
124124
<string name="page_down_command_key">binding_PAGE_DOWN</string>
125+
<string name="browse_command_key">binding_BROWSE</string>
125126
<string name="statistics_command_key">binding_STATISTICS</string>
126127
<string name="tag_command_key">binding_TAG</string>
127128
<string name="card_info_command_key">binding_CARD_INFO</string>

AnkiDroid/src/main/res/xml/preferences_reviewer_controls.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,12 @@
148148
android:title="@string/gesture_page_down"
149149
android:icon="@drawable/ic_double_arrow_down"
150150
/>
151+
<com.ichi2.preferences.ReviewerControlPreference
152+
android:key="@string/browse_command_key"
153+
android:icon="@drawable/ic_flashcard_black"
154+
app:isPreferenceVisible="false"
155+
tools:title="Browse"
156+
/>
151157
<com.ichi2.preferences.ReviewerControlPreference
152158
android:key="@string/statistics_command_key"
153159
android:icon="@drawable/ic_bar_chart_black"

0 commit comments

Comments
 (0)