Only allow digits in custom download range dialog (closes #6220)
This commit is contained in:
parent
a8a761aa5f
commit
1e4d7f8c6e
1 changed files with 21 additions and 0 deletions
|
@ -1,11 +1,14 @@
|
|||
package eu.kanade.tachiyomi.widget
|
||||
|
||||
import android.content.Context
|
||||
import android.text.InputFilter
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import androidx.core.text.isDigitsOnly
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import eu.kanade.tachiyomi.databinding.DownloadCustomAmountBinding
|
||||
import eu.kanade.tachiyomi.util.system.logcat
|
||||
|
@ -45,6 +48,7 @@ class DialogCustomDownloadView @JvmOverloads constructor(context: Context, attrs
|
|||
|
||||
// Set download count to 0.
|
||||
binding.myNumber.text = SpannableStringBuilder(getAmount(0).toString())
|
||||
binding.myNumber.filters = arrayOf(DigitInputFilter())
|
||||
|
||||
// When user presses button decrease amount by 10.
|
||||
binding.btnDecrease10.setOnClickListener {
|
||||
|
@ -102,3 +106,20 @@ class DialogCustomDownloadView @JvmOverloads constructor(context: Context, attrs
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class DigitInputFilter : InputFilter {
|
||||
|
||||
override fun filter(
|
||||
source: CharSequence,
|
||||
start: Int,
|
||||
end: Int,
|
||||
dest: Spanned,
|
||||
dstart: Int,
|
||||
dend: Int,
|
||||
): CharSequence {
|
||||
return when {
|
||||
source.toString().isDigitsOnly() -> source.toString()
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Reference in a new issue