Avoid some IndexOutOfBoundsExceptions
This commit is contained in:
parent
d2e62ffb19
commit
eb742b29f8
@ -93,10 +93,12 @@ fun ChangeCategoryDialog(
|
|||||||
selection.forEach { checkbox ->
|
selection.forEach { checkbox ->
|
||||||
val onChange: (CheckboxState<Category>) -> Unit = {
|
val onChange: (CheckboxState<Category>) -> Unit = {
|
||||||
val index = selection.indexOf(it)
|
val index = selection.indexOf(it)
|
||||||
val mutableList = selection.toMutableList()
|
if (index != -1) {
|
||||||
mutableList.removeAt(index)
|
val mutableList = selection.toMutableList()
|
||||||
mutableList.add(index, it.next())
|
mutableList.removeAt(index)
|
||||||
selection = mutableList.toList()
|
mutableList.add(index, it.next())
|
||||||
|
selection = mutableList.toList()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
@ -14,6 +14,7 @@ import androidx.appcompat.widget.PopupMenu
|
|||||||
import androidx.core.content.withStyledAttributes
|
import androidx.core.content.withStyledAttributes
|
||||||
import androidx.core.view.forEach
|
import androidx.core.view.forEach
|
||||||
import androidx.core.view.get
|
import androidx.core.view.get
|
||||||
|
import androidx.core.view.size
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.core.preference.Preference
|
import eu.kanade.tachiyomi.core.preference.Preference
|
||||||
import eu.kanade.tachiyomi.databinding.PrefSpinnerBinding
|
import eu.kanade.tachiyomi.databinding.PrefSpinnerBinding
|
||||||
@ -66,12 +67,13 @@ class MaterialSpinnerView @JvmOverloads constructor(context: Context, attrs: Att
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun setSelection(selection: Int) {
|
fun setSelection(selection: Int) {
|
||||||
popup?.menu?.get(selectedPosition)?.let {
|
if (selectedPosition < (popup?.menu?.size ?: 0)) {
|
||||||
it.icon = emptyIcon
|
popup?.menu?.getItem(selectedPosition)?.let {
|
||||||
it.title = entries[selectedPosition]
|
it.icon = emptyIcon
|
||||||
|
}
|
||||||
}
|
}
|
||||||
selectedPosition = selection
|
selectedPosition = selection
|
||||||
popup?.menu?.get(selectedPosition)?.let {
|
popup?.menu?.getItem(selectedPosition)?.let {
|
||||||
it.icon = checkmarkIcon
|
it.icon = checkmarkIcon
|
||||||
}
|
}
|
||||||
binding.details.text = entries.getOrNull(selection).orEmpty()
|
binding.details.text = entries.getOrNull(selection).orEmpty()
|
||||||
|
Loading…
Reference in New Issue
Block a user