Skip to content

Commit 700aee3

Browse files
david-allisonBrayanDSO
authored andcommitted
chore: convert BrowserOptionsDialog to ViewBinding
Issue 11116
1 parent 86ef746 commit 700aee3

File tree

2 files changed

+19
-29
lines changed

2 files changed

+19
-29
lines changed

AnkiDroid/src/main/java/com/ichi2/anki/dialogs/BrowserOptionsDialog.kt

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,6 @@ package com.ichi2.anki.dialogs
1919
import android.app.Dialog
2020
import android.content.DialogInterface
2121
import android.os.Bundle
22-
import android.view.View
23-
import android.widget.Button
24-
import android.widget.CheckBox
25-
import android.widget.LinearLayout
26-
import android.widget.RadioButton
27-
import android.widget.RadioGroup
28-
import android.widget.TextView
29-
import androidx.annotation.IdRes
3022
import androidx.appcompat.app.AppCompatDialogFragment
3123
import androidx.core.os.bundleOf
3224
import androidx.fragment.app.activityViewModels
@@ -35,20 +27,19 @@ import com.ichi2.anki.CollectionManager.TR
3527
import com.ichi2.anki.R
3628
import com.ichi2.anki.browser.BrowserColumnSelectionFragment
3729
import com.ichi2.anki.browser.CardBrowserViewModel
30+
import com.ichi2.anki.databinding.BrowserOptionsDialogBinding
3831
import com.ichi2.anki.model.CardsOrNotes
3932
import timber.log.Timber
4033

41-
class BrowserOptionsDialog : AppCompatDialogFragment() {
42-
private lateinit var dialogView: View
43-
34+
class BrowserOptionsDialog : AppCompatDialogFragment(R.layout.browser_options_dialog) {
4435
private val viewModel: CardBrowserViewModel by activityViewModels()
4536

37+
private lateinit var binding: BrowserOptionsDialogBinding
38+
4639
/** The unsaved value of [CardsOrNotes] */
4740
private val dialogCardsOrNotes: CardsOrNotes
4841
get() {
49-
@IdRes val selectedButtonId =
50-
dialogView.findViewById<RadioGroup>(R.id.select_browser_mode).checkedRadioButtonId
51-
return when (selectedButtonId) {
42+
return when (binding.selectBrowserMode.checkedRadioButtonId) {
5243
R.id.select_cards_mode -> CardsOrNotes.CARDS
5344
else -> CardsOrNotes.NOTES
5445
}
@@ -58,13 +49,13 @@ class BrowserOptionsDialog : AppCompatDialogFragment() {
5849
if (cardsOrNotes != dialogCardsOrNotes) {
5950
viewModel.setCardsOrNotes(dialogCardsOrNotes)
6051
}
61-
val newTruncate = dialogView.findViewById<CheckBox>(R.id.truncate_checkbox).isChecked
52+
val newTruncate = binding.truncateCheckBox.isChecked
6253

6354
if (newTruncate != isTruncated) {
6455
viewModel.setTruncated(newTruncate)
6556
}
6657

67-
val newIgnoreAccent = dialogView.findViewById<CheckBox>(R.id.ignore_accents_checkbox).isChecked
58+
val newIgnoreAccent = binding.ignoreAccentsCheckBox.isChecked
6859
if (newIgnoreAccent != viewModel.shouldIgnoreAccents) {
6960
viewModel.setIgnoreAccents(newIgnoreAccent)
7061
}
@@ -90,37 +81,36 @@ class BrowserOptionsDialog : AppCompatDialogFragment() {
9081
}
9182

9283
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
93-
val layoutInflater = requireActivity().layoutInflater
94-
dialogView = layoutInflater.inflate(R.layout.browser_options_dialog, null)
84+
binding = BrowserOptionsDialogBinding.inflate(layoutInflater)
9585

9686
if (cardsOrNotes == CardsOrNotes.CARDS) {
97-
dialogView.findViewById<RadioButton>(R.id.select_cards_mode).isChecked = true
87+
binding.selectCardsMode.isChecked = true
9888
} else {
99-
dialogView.findViewById<RadioButton>(R.id.select_notes_mode).isChecked = true
89+
binding.selectNotesMode.isChecked = true
10090
}
10191

102-
dialogView.findViewById<CheckBox>(R.id.truncate_checkbox).isChecked = isTruncated
92+
binding.truncateCheckBox.isChecked = isTruncated
10393

104-
dialogView.findViewById<LinearLayout>(R.id.action_rename_flag).setOnClickListener {
94+
binding.renameFlag.setOnClickListener {
10595
Timber.d("Rename flag clicked")
10696
val flagRenameDialog = FlagRenameDialog()
10797
flagRenameDialog.show(parentFragmentManager, "FlagRenameDialog")
10898
dismiss()
10999
}
110100

111-
dialogView.findViewById<Button>(R.id.manage_columns_button).setOnClickListener {
101+
binding.manageColumnsButton.setOnClickListener {
112102
openColumnManager()
113103
}
114104

115-
dialogView.findViewById<CheckBox>(R.id.ignore_accents_checkbox).apply {
105+
binding.ignoreAccentsCheckBox.apply {
116106
text = TR.preferencesIgnoreAccentsInSearch()
117107
isChecked = viewModel.shouldIgnoreAccents
118108
}
119109

120-
dialogView.findViewById<TextView>(R.id.browsing_text_view).text = TR.preferencesBrowsing()
110+
binding.browsingTextView.text = TR.preferencesBrowsing()
121111

122112
return MaterialAlertDialogBuilder(requireContext()).run {
123-
this.setView(dialogView)
113+
this.setView(binding.root)
124114
this.setTitle(getString(R.string.browser_options_dialog_heading))
125115
this.setNegativeButton(getString(R.string.dialog_cancel)) { _: DialogInterface, _: Int ->
126116
dismiss()

AnkiDroid/src/main/res/layout/browser_options_dialog.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
android:layout_marginHorizontal="16dp" />
5858

5959
<CheckBox
60-
android:id="@+id/truncate_checkbox"
60+
android:id="@+id/truncate_check_box"
6161
android:layout_width="match_parent"
6262
android:layout_height="wrap_content"
6363
android:text="@string/card_browser_truncate"
@@ -87,7 +87,7 @@
8787
android:layout_marginHorizontal="16dp" />
8888

8989
<CheckBox
90-
android:id="@+id/ignore_accents_checkbox"
90+
android:id="@+id/ignore_accents_check_box"
9191
android:layout_width="match_parent"
9292
android:layout_height="wrap_content"
9393
android:layout_marginHorizontal="16dp"
@@ -137,7 +137,7 @@
137137
<LinearLayout
138138
android:gravity="center"
139139
android:minHeight="?attr/listPreferredItemHeightSmall"
140-
android:id="@+id/action_rename_flag"
140+
android:id="@+id/rename_flag"
141141
android:background="?attr/selectableItemBackground"
142142
android:layout_marginHorizontal="16dp"
143143
android:layout_width="match_parent"

0 commit comments

Comments
 (0)