Skip to content

Commit 9c1fc2b

Browse files
committed
chore: convert GesturePicker to ViewBinding
Issue 11116
1 parent d0d87d2 commit 9c1fc2b

2 files changed

Lines changed: 13 additions & 15 deletions

File tree

AnkiDroid/src/main/java/com/ichi2/ui/GesturePicker.kt

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import androidx.constraintlayout.widget.ConstraintLayout
2727
import com.ichi2.anki.R
2828
import com.ichi2.anki.cardviewer.Gesture
2929
import com.ichi2.anki.cardviewer.GestureListener
30+
import com.ichi2.anki.databinding.GesturePickerBinding
3031
import com.ichi2.anki.dialogs.WarningDisplay
3132
import com.ichi2.utils.UiUtil.setSelectedValue
3233
import timber.log.Timber
@@ -45,24 +46,21 @@ class GesturePicker(
4546
defStyleAttr: Int = 0,
4647
) : ConstraintLayout(ctx, attributeSet, defStyleAttr),
4748
WarningDisplay {
48-
private val gestureSpinner: Spinner
49-
private val gestureDisplay: GestureDisplay
49+
private val binding: GesturePickerBinding
5050
override val warningTextView: FixedTextView
5151

5252
private var onGestureListener: GestureListener? = null
5353

5454
init {
5555
val inflater = ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
56-
inflater.inflate(R.layout.gesture_picker, this)
57-
gestureDisplay = findViewById(R.id.gestureDisplay)
58-
gestureSpinner = findViewById(R.id.spinner_gesture)
59-
warningTextView = findViewById(R.id.warning)
60-
gestureDisplay.setGestureChangedListener(this::onGesture)
61-
gestureSpinner.adapter = ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, allGestures())
62-
gestureSpinner.onItemSelectedListener = InnerSpinner()
56+
binding = GesturePickerBinding.inflate(inflater, this, true)
57+
warningTextView = binding.warning
58+
binding.gestureDisplay.setGestureChangedListener(this::onGesture)
59+
binding.gestureSpinner.adapter = ArrayAdapter(context, android.R.layout.simple_spinner_dropdown_item, allGestures())
60+
binding.gestureSpinner.onItemSelectedListener = InnerSpinner()
6361
}
6462

65-
fun getGesture() = gestureDisplay.getGesture()
63+
fun getGesture() = binding.gestureDisplay.getGesture()
6664

6765
private fun onGesture(gesture: Gesture?) {
6866
Timber.d("gesture: %s", gesture?.toDisplayString(context))
@@ -77,8 +75,8 @@ class GesturePicker(
7775
}
7876

7977
private fun setGesture(gesture: Gesture?) {
80-
gestureSpinner.setSelectedValue(GestureWrapper(gesture))
81-
gestureDisplay.setGesture(gesture)
78+
binding.gestureSpinner.setSelectedValue(GestureWrapper(gesture))
79+
binding.gestureDisplay.setGesture(gesture)
8280
}
8381

8482
/** Not fired if deselected */
@@ -88,7 +86,7 @@ class GesturePicker(
8886

8987
private fun allGestures(): List<GestureWrapper> = (listOf(null) + availableGestures()).map(this::GestureWrapper).toList()
9088

91-
private fun availableGestures() = gestureDisplay.availableValues()
89+
private fun availableGestures() = binding.gestureDisplay.availableValues()
9290

9391
inner class GestureWrapper(
9492
val gesture: Gesture?,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
android:layout_height="0dp"
2929
android:layoutDirection="ltr"
3030
app:layout_constraintTop_toTopOf="parent"
31-
app:layout_constraintBottom_toTopOf="@id/spinner_gesture"
31+
app:layout_constraintBottom_toTopOf="@id/gesture_spinner"
3232
app:layout_constraintStart_toStartOf="parent"
3333
app:layout_constraintEnd_toEndOf="parent"
3434
app:layout_constraintDimensionRatio="1:1"
3535
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"/>
3636

3737
<Spinner
38-
android:id="@+id/spinner_gesture"
38+
android:id="@+id/gesture_spinner"
3939
android:layout_width="wrap_content"
4040
android:layout_height="wrap_content"
4141
android:dropDownWidth="wrap_content"

0 commit comments

Comments
 (0)