File tree Expand file tree Collapse file tree
app/src/main/java/com/github/libretube/ui Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import com.github.libretube.ui.adapters.InstancesAdapter
1818import com.github.libretube.ui.base.BaseActivity
1919import com.github.libretube.ui.models.WelcomeModel
2020import com.github.libretube.ui.preferences.BackupRestoreSettings
21+ import com.google.common.collect.ImmutableList
2122import kotlinx.coroutines.CoroutineScope
2223import kotlinx.coroutines.Dispatchers
2324import kotlinx.coroutines.launch
@@ -49,7 +50,7 @@ class WelcomeActivity : BaseActivity() {
4950 // ALl the binding values are optional due to two different possible layouts (normal, landscape)
5051 viewModel.instances.observe(this ) { instances ->
5152 binding.instancesRecycler.layoutManager = LinearLayoutManager (this @WelcomeActivity)
52- binding.instancesRecycler.adapter = InstancesAdapter (instances, viewModel.selectedInstanceIndex.value) { index ->
53+ binding.instancesRecycler.adapter = InstancesAdapter (ImmutableList .copyOf( instances) , viewModel.selectedInstanceIndex.value) { index ->
5354 viewModel.selectedInstanceIndex.value = index
5455 binding.okay.alpha = 1f
5556 }
Original file line number Diff line number Diff line change @@ -8,9 +8,10 @@ import com.github.libretube.R
88import com.github.libretube.api.obj.PipedInstance
99import com.github.libretube.databinding.InstanceRowBinding
1010import com.github.libretube.ui.viewholders.InstancesViewHolder
11+ import com.google.common.collect.ImmutableList
1112
1213class InstancesAdapter (
13- private val instances : List <PipedInstance >,
14+ private val instances : ImmutableList <PipedInstance >,
1415 initialSelectionApiIndex : Int? ,
1516 private val onSelectInstance : (index: Int ) -> Unit
1617) : RecyclerView.Adapter<InstancesViewHolder>() {
Original file line number Diff line number Diff line change @@ -26,6 +26,7 @@ import com.github.libretube.ui.dialogs.DeleteAccountDialog
2626import com.github.libretube.ui.dialogs.LoginDialog
2727import com.github.libretube.ui.dialogs.LogoutDialog
2828import com.google.android.material.dialog.MaterialAlertDialogBuilder
29+ import com.google.common.collect.ImmutableList
2930import kotlinx.coroutines.Dispatchers
3031import kotlinx.coroutines.launch
3132import kotlinx.coroutines.withContext
@@ -184,6 +185,8 @@ class InstanceSettings : BasePreferenceFragment() {
184185 val layoutInflater = LayoutInflater .from(context)
185186 val binding = SimpleOptionsRecyclerBinding .inflate(layoutInflater)
186187 binding.optionsRecycler.layoutManager = LinearLayoutManager (context)
188+
189+ val instances = ImmutableList .copyOf(this .instances)
187190 binding.optionsRecycler.adapter = InstancesAdapter (instances, selectedIndex) {
188191 selectedInstance = instances[it].apiUrl
189192 }
You can’t perform that action at this time.
0 commit comments