Make ChooseAccountProviderState stable
This commit is contained in:
parent
c33815ccd3
commit
403a58d7a7
3 changed files with 6 additions and 2 deletions
|
|
@ -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.AsyncData
|
||||||
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 ChooseAccountProviderPresenter(
|
class ChooseAccountProviderPresenter(
|
||||||
|
|
@ -69,6 +70,7 @@ class ChooseAccountProviderPresenter(
|
||||||
isValid = true,
|
isValid = true,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
.toImmutableList()
|
||||||
}
|
}
|
||||||
|
|
||||||
return ChooseAccountProviderState(
|
return ChooseAccountProviderState(
|
||||||
|
|
|
||||||
|
|
@ -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.accountprovider.AccountProvider
|
||||||
import io.element.android.features.login.impl.login.LoginMode
|
import io.element.android.features.login.impl.login.LoginMode
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
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.
|
// Do not use default value, so no member get forgotten in the presenters.
|
||||||
data class ChooseAccountProviderState(
|
data class ChooseAccountProviderState(
|
||||||
val accountProviders: List<AccountProvider>,
|
val accountProviders: ImmutableList<AccountProvider>,
|
||||||
val selectedAccountProvider: AccountProvider?,
|
val selectedAccountProvider: AccountProvider?,
|
||||||
val loginMode: AsyncData<LoginMode>,
|
val loginMode: AsyncData<LoginMode>,
|
||||||
val eventSink: (ChooseAccountProviderEvents) -> Unit,
|
val eventSink: (ChooseAccountProviderEvents) -> Unit,
|
||||||
|
|
|
||||||
|
|
@ -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.login.LoginMode
|
import io.element.android.features.login.impl.login.LoginMode
|
||||||
import io.element.android.libraries.architecture.AsyncData
|
import io.element.android.libraries.architecture.AsyncData
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
open class ChooseAccountProviderStateProvider : PreviewParameterProvider<ChooseAccountProviderState> {
|
open class ChooseAccountProviderStateProvider : PreviewParameterProvider<ChooseAccountProviderState> {
|
||||||
private val server1 = anAccountProvider(
|
private val server1 = anAccountProvider(
|
||||||
|
|
@ -70,7 +71,7 @@ fun aChooseAccountProviderState(
|
||||||
loginMode: AsyncData<LoginMode> = AsyncData.Uninitialized,
|
loginMode: AsyncData<LoginMode> = AsyncData.Uninitialized,
|
||||||
eventSink: (ChooseAccountProviderEvents) -> Unit = {},
|
eventSink: (ChooseAccountProviderEvents) -> Unit = {},
|
||||||
) = ChooseAccountProviderState(
|
) = ChooseAccountProviderState(
|
||||||
accountProviders = accountProviders,
|
accountProviders = accountProviders.toImmutableList(),
|
||||||
selectedAccountProvider = selectedAccountProvider,
|
selectedAccountProvider = selectedAccountProvider,
|
||||||
loginMode = loginMode,
|
loginMode = loginMode,
|
||||||
eventSink = eventSink,
|
eventSink = eventSink,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue