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