MinMaxNumberPicker: Set IME input to use number only (#6286)
* MinMaxNumberPicker: Set IME input to use number only * MinMaxNumberPicker: Auto disable keyboard input when needed
This commit is contained in:
parent
8acce011b5
commit
3463d6c752
@ -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<out String>?) {
|
||||
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<EditText>()?.setRawInputType(InputType.TYPE_CLASS_NUMBER)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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" />
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user