diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/MinMaxNumberPicker.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/MinMaxNumberPicker.kt index a041db442..5da40a903 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/MinMaxNumberPicker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/MinMaxNumberPicker.kt @@ -1,13 +1,27 @@ package eu.kanade.tachiyomi.widget import android.content.Context +import android.text.InputType import android.util.AttributeSet +import android.widget.EditText import android.widget.NumberPicker +import androidx.core.view.doOnLayout import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.util.view.findDescendant class MinMaxNumberPicker @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : NumberPicker(context, attrs) { + override fun setDisplayedValues(displayedValues: Array?) { + super.setDisplayedValues(displayedValues) + + // Disable keyboard input when a value that can't be auto-filled with number exists + val notNumberValue = displayedValues?.find { it.getOrNull(0)?.digitToIntOrNull() == null } + if (notNumberValue != null) { + descendantFocusability = FOCUS_BLOCK_DESCENDANTS + } + } + init { if (attrs != null) { val ta = context.obtainStyledAttributes(attrs, R.styleable.MinMaxNumberPicker, 0, 0) @@ -18,5 +32,9 @@ class MinMaxNumberPicker @JvmOverloads constructor(context: Context, attrs: Attr ta.recycle() } } + + doOnLayout { + findDescendant()?.setRawInputType(InputType.TYPE_CLASS_NUMBER) + } } } diff --git a/app/src/main/res/layout/pref_library_columns.xml b/app/src/main/res/layout/pref_library_columns.xml index aa3caed89..059e33ebf 100644 --- a/app/src/main/res/layout/pref_library_columns.xml +++ b/app/src/main/res/layout/pref_library_columns.xml @@ -22,7 +22,6 @@ android:id="@+id/portrait_columns" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:descendantFocusability="blocksDescendants" app:max="10" app:min="0" /> @@ -44,7 +43,6 @@ android:id="@+id/landscape_columns" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:descendantFocusability="blocksDescendants" app:max="10" app:min="0" />