Make ChangeAccountProviderState stable

This commit is contained in:
Benoit Marty 2025-10-09 17:20:16 +02:00 committed by Benoit Marty
parent 49fd981157
commit 8987949704
3 changed files with 6 additions and 2 deletions

View file

@ -17,6 +17,7 @@ import io.element.android.features.login.impl.accountprovider.AccountProvider
import io.element.android.features.login.impl.changeserver.ChangeServerState import io.element.android.features.login.impl.changeserver.ChangeServerState
import io.element.android.libraries.architecture.Presenter import io.element.android.libraries.architecture.Presenter
import io.element.android.libraries.core.uri.ensureProtocol import io.element.android.libraries.core.uri.ensureProtocol
import kotlinx.collections.immutable.toImmutableList
@Inject @Inject
class ChangeAccountProviderPresenter( class ChangeAccountProviderPresenter(
@ -39,6 +40,7 @@ class ChangeAccountProviderPresenter(
isValid = true, isValid = true,
) )
} }
.toImmutableList()
} }
val canSearchForAccountProviders = remember { val canSearchForAccountProviders = remember {

View file

@ -9,10 +9,11 @@ package io.element.android.features.login.impl.screens.changeaccountprovider
import io.element.android.features.login.impl.accountprovider.AccountProvider import io.element.android.features.login.impl.accountprovider.AccountProvider
import io.element.android.features.login.impl.changeserver.ChangeServerState import io.element.android.features.login.impl.changeserver.ChangeServerState
import kotlinx.collections.immutable.ImmutableList
// Do not use default value, so no member get forgotten in the presenters. // Do not use default value, so no member get forgotten in the presenters.
data class ChangeAccountProviderState( data class ChangeAccountProviderState(
val accountProviders: List<AccountProvider>, val accountProviders: ImmutableList<AccountProvider>,
val canSearchForAccountProviders: Boolean, val canSearchForAccountProviders: Boolean,
val changeServerState: ChangeServerState, val changeServerState: ChangeServerState,
) )

View file

@ -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.accountprovider.anAccountProvider
import io.element.android.features.login.impl.changeserver.ChangeServerState import io.element.android.features.login.impl.changeserver.ChangeServerState
import io.element.android.features.login.impl.changeserver.aChangeServerState import io.element.android.features.login.impl.changeserver.aChangeServerState
import kotlinx.collections.immutable.toImmutableList
open class ChangeAccountProviderStateProvider : PreviewParameterProvider<ChangeAccountProviderState> { open class ChangeAccountProviderStateProvider : PreviewParameterProvider<ChangeAccountProviderState> {
override val values: Sequence<ChangeAccountProviderState> override val values: Sequence<ChangeAccountProviderState>
@ -29,7 +30,7 @@ fun aChangeAccountProviderState(
canSearchForAccountProviders: Boolean = true, canSearchForAccountProviders: Boolean = true,
changeServerState: ChangeServerState = aChangeServerState(), changeServerState: ChangeServerState = aChangeServerState(),
) = ChangeAccountProviderState( ) = ChangeAccountProviderState(
accountProviders = accountProviders, accountProviders = accountProviders.toImmutableList(),
canSearchForAccountProviders = canSearchForAccountProviders, canSearchForAccountProviders = canSearchForAccountProviders,
changeServerState = changeServerState, changeServerState = changeServerState,
) )