diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderPresenter.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderPresenter.kt index d259454f18..73f03ba7c8 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderPresenter.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderPresenter.kt @@ -21,6 +21,7 @@ import io.element.android.features.login.impl.login.LoginHelper import io.element.android.libraries.architecture.AsyncData import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.core.uri.ensureProtocol +import kotlinx.collections.immutable.toImmutableList @Inject class ChooseAccountProviderPresenter( @@ -69,6 +70,7 @@ class ChooseAccountProviderPresenter( isValid = true, ) } + .toImmutableList() } return ChooseAccountProviderState( diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderState.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderState.kt index 3591334047..ad4677ea24 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderState.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderState.kt @@ -10,10 +10,11 @@ package io.element.android.features.login.impl.screens.chooseaccountprovider import io.element.android.features.login.impl.accountprovider.AccountProvider import io.element.android.features.login.impl.login.LoginMode import io.element.android.libraries.architecture.AsyncData +import kotlinx.collections.immutable.ImmutableList // Do not use default value, so no member get forgotten in the presenters. data class ChooseAccountProviderState( - val accountProviders: List, + val accountProviders: ImmutableList, val selectedAccountProvider: AccountProvider?, val loginMode: AsyncData, val eventSink: (ChooseAccountProviderEvents) -> Unit, diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderStateProvider.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderStateProvider.kt index b921fee330..8dc059285e 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderStateProvider.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/chooseaccountprovider/ChooseAccountProviderStateProvider.kt @@ -12,6 +12,7 @@ import io.element.android.features.login.impl.accountprovider.AccountProvider import io.element.android.features.login.impl.accountprovider.anAccountProvider import io.element.android.features.login.impl.login.LoginMode import io.element.android.libraries.architecture.AsyncData +import kotlinx.collections.immutable.toImmutableList open class ChooseAccountProviderStateProvider : PreviewParameterProvider { private val server1 = anAccountProvider( @@ -70,7 +71,7 @@ fun aChooseAccountProviderState( loginMode: AsyncData = AsyncData.Uninitialized, eventSink: (ChooseAccountProviderEvents) -> Unit = {}, ) = ChooseAccountProviderState( - accountProviders = accountProviders, + accountProviders = accountProviders.toImmutableList(), selectedAccountProvider = selectedAccountProvider, loginMode = loginMode, eventSink = eventSink,