Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/AccountSetupModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ val featureAccountSetupModule: Module = module { AccountAutoDiscoveryViewModel( validator = get(), getAutoDiscovery = get(), accountSetupStateRepository = get(), oAuthViewModel = get(), ) } Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupContract.kt +0 −2 Original line number Diff line number Diff line package app.k9mail.feature.account.setup.ui import app.k9mail.core.ui.compose.common.mvi.UnidirectionalViewModel import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract interface AccountSetupContract { Loading @@ -25,7 +24,6 @@ interface AccountSetupContract { object OnNext : Event data class OnAutoDiscoveryFinished( val state: AccountAutoDiscoveryContract.State, val isAutomaticConfig: Boolean, ) : Event Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupScreen.kt +1 −2 Original line number Diff line number Diff line Loading @@ -54,10 +54,9 @@ fun AccountSetupScreen( when (state.value.setupStep) { SetupStep.AUTO_CONFIG -> { AccountAutoDiscoveryScreen( onNext = { autoDiscoveryState, isAutomaticConfig -> onNext = { isAutomaticConfig -> dispatch( Event.OnAutoDiscoveryFinished( autoDiscoveryState, isAutomaticConfig, ), ) Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupViewModel.kt +1 −9 Original line number Diff line number Diff line Loading @@ -9,8 +9,6 @@ import app.k9mail.feature.account.setup.ui.AccountSetupContract.Effect import app.k9mail.feature.account.setup.ui.AccountSetupContract.Event import app.k9mail.feature.account.setup.ui.AccountSetupContract.SetupStep import app.k9mail.feature.account.setup.ui.AccountSetupContract.State import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract import app.k9mail.feature.account.setup.ui.autodiscovery.toAccountSetupState import kotlinx.coroutines.launch @Suppress("LongParameterList") Loading @@ -22,7 +20,7 @@ class AccountSetupViewModel( override fun event(event: Event) { when (event) { is Event.OnAutoDiscoveryFinished -> onAutoDiscoveryFinished(event.state, event.isAutomaticConfig) is Event.OnAutoDiscoveryFinished -> onAutoDiscoveryFinished(event.isAutomaticConfig) Event.OnBack -> onBack() Event.OnNext -> onNext() Loading @@ -30,7 +28,6 @@ class AccountSetupViewModel( } private fun onAutoDiscoveryFinished( autoDiscoveryState: AccountAutoDiscoveryContract.State, isAutomaticConfig: Boolean, ) { updateState { Loading @@ -39,8 +36,6 @@ class AccountSetupViewModel( ) } accountSetupStateRepository.save(autoDiscoveryState.toAccountSetupState()) onNext() } Loading @@ -48,7 +43,6 @@ class AccountSetupViewModel( when (state.value.setupStep) { SetupStep.AUTO_CONFIG -> { if (state.value.isAutomaticConfig) { // TODO save state for incoming/outgoing server settings changeToSetupStep(SetupStep.INCOMING_VALIDATION) } else { changeToSetupStep(SetupStep.INCOMING_CONFIG) Loading @@ -56,7 +50,6 @@ class AccountSetupViewModel( } SetupStep.INCOMING_CONFIG -> { // TODO save state for incoming server settings changeToSetupStep(SetupStep.INCOMING_VALIDATION) } Loading @@ -69,7 +62,6 @@ class AccountSetupViewModel( } SetupStep.OUTGOING_CONFIG -> { // TODO save state for outgoing server settings changeToSetupStep(SetupStep.OUTGOING_VALIDATION) } Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/autodiscovery/AccountAutoDiscoveryScreen.kt +7 −5 Original line number Diff line number Diff line Loading @@ -16,12 +16,12 @@ import app.k9mail.feature.account.oauth.ui.preview.PreviewAccountOAuthViewModel import app.k9mail.feature.account.setup.R import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.Effect import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.Event import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.State import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.ViewModel import app.k9mail.feature.account.setup.ui.preview.PreviewAccountSetupStateRepository @Composable internal fun AccountAutoDiscoveryScreen( onNext: (state: State, isAutomaticConfig: Boolean) -> Unit, onNext: (isAutomaticConfig: Boolean) -> Unit, onBack: () -> Unit, viewModel: ViewModel, modifier: Modifier = Modifier, Loading @@ -29,7 +29,7 @@ internal fun AccountAutoDiscoveryScreen( val (state, dispatch) = viewModel.observe { effect -> when (effect) { Effect.NavigateBack -> onBack() is Effect.NavigateNext -> onNext(viewModel.state.value, effect.isAutomaticConfig) is Effect.NavigateNext -> onNext(effect.isAutomaticConfig) } } Loading Loading @@ -67,11 +67,12 @@ internal fun AccountAutoDiscoveryScreen( internal fun AccountAutoDiscoveryScreenK9Preview() { K9Theme { AccountAutoDiscoveryScreen( onNext = { _, _ -> }, onNext = {}, onBack = {}, viewModel = AccountAutoDiscoveryViewModel( validator = AccountAutoDiscoveryValidator(), getAutoDiscovery = { AutoDiscoveryResult.NoUsableSettingsFound }, accountSetupStateRepository = PreviewAccountSetupStateRepository(), oAuthViewModel = PreviewAccountOAuthViewModel(), ), ) Loading @@ -83,11 +84,12 @@ internal fun AccountAutoDiscoveryScreenK9Preview() { internal fun AccountAutoDiscoveryScreenThunderbirdPreview() { ThunderbirdTheme { AccountAutoDiscoveryScreen( onNext = { _, _ -> }, onNext = { }, onBack = {}, viewModel = AccountAutoDiscoveryViewModel( validator = AccountAutoDiscoveryValidator(), getAutoDiscovery = { AutoDiscoveryResult.NoUsableSettingsFound }, accountSetupStateRepository = PreviewAccountSetupStateRepository(), oAuthViewModel = PreviewAccountOAuthViewModel(), ), ) Loading Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/AccountSetupModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -97,6 +97,7 @@ val featureAccountSetupModule: Module = module { AccountAutoDiscoveryViewModel( validator = get(), getAutoDiscovery = get(), accountSetupStateRepository = get(), oAuthViewModel = get(), ) } Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupContract.kt +0 −2 Original line number Diff line number Diff line package app.k9mail.feature.account.setup.ui import app.k9mail.core.ui.compose.common.mvi.UnidirectionalViewModel import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract interface AccountSetupContract { Loading @@ -25,7 +24,6 @@ interface AccountSetupContract { object OnNext : Event data class OnAutoDiscoveryFinished( val state: AccountAutoDiscoveryContract.State, val isAutomaticConfig: Boolean, ) : Event Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupScreen.kt +1 −2 Original line number Diff line number Diff line Loading @@ -54,10 +54,9 @@ fun AccountSetupScreen( when (state.value.setupStep) { SetupStep.AUTO_CONFIG -> { AccountAutoDiscoveryScreen( onNext = { autoDiscoveryState, isAutomaticConfig -> onNext = { isAutomaticConfig -> dispatch( Event.OnAutoDiscoveryFinished( autoDiscoveryState, isAutomaticConfig, ), ) Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/AccountSetupViewModel.kt +1 −9 Original line number Diff line number Diff line Loading @@ -9,8 +9,6 @@ import app.k9mail.feature.account.setup.ui.AccountSetupContract.Effect import app.k9mail.feature.account.setup.ui.AccountSetupContract.Event import app.k9mail.feature.account.setup.ui.AccountSetupContract.SetupStep import app.k9mail.feature.account.setup.ui.AccountSetupContract.State import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract import app.k9mail.feature.account.setup.ui.autodiscovery.toAccountSetupState import kotlinx.coroutines.launch @Suppress("LongParameterList") Loading @@ -22,7 +20,7 @@ class AccountSetupViewModel( override fun event(event: Event) { when (event) { is Event.OnAutoDiscoveryFinished -> onAutoDiscoveryFinished(event.state, event.isAutomaticConfig) is Event.OnAutoDiscoveryFinished -> onAutoDiscoveryFinished(event.isAutomaticConfig) Event.OnBack -> onBack() Event.OnNext -> onNext() Loading @@ -30,7 +28,6 @@ class AccountSetupViewModel( } private fun onAutoDiscoveryFinished( autoDiscoveryState: AccountAutoDiscoveryContract.State, isAutomaticConfig: Boolean, ) { updateState { Loading @@ -39,8 +36,6 @@ class AccountSetupViewModel( ) } accountSetupStateRepository.save(autoDiscoveryState.toAccountSetupState()) onNext() } Loading @@ -48,7 +43,6 @@ class AccountSetupViewModel( when (state.value.setupStep) { SetupStep.AUTO_CONFIG -> { if (state.value.isAutomaticConfig) { // TODO save state for incoming/outgoing server settings changeToSetupStep(SetupStep.INCOMING_VALIDATION) } else { changeToSetupStep(SetupStep.INCOMING_CONFIG) Loading @@ -56,7 +50,6 @@ class AccountSetupViewModel( } SetupStep.INCOMING_CONFIG -> { // TODO save state for incoming server settings changeToSetupStep(SetupStep.INCOMING_VALIDATION) } Loading @@ -69,7 +62,6 @@ class AccountSetupViewModel( } SetupStep.OUTGOING_CONFIG -> { // TODO save state for outgoing server settings changeToSetupStep(SetupStep.OUTGOING_VALIDATION) } Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/ui/autodiscovery/AccountAutoDiscoveryScreen.kt +7 −5 Original line number Diff line number Diff line Loading @@ -16,12 +16,12 @@ import app.k9mail.feature.account.oauth.ui.preview.PreviewAccountOAuthViewModel import app.k9mail.feature.account.setup.R import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.Effect import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.Event import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.State import app.k9mail.feature.account.setup.ui.autodiscovery.AccountAutoDiscoveryContract.ViewModel import app.k9mail.feature.account.setup.ui.preview.PreviewAccountSetupStateRepository @Composable internal fun AccountAutoDiscoveryScreen( onNext: (state: State, isAutomaticConfig: Boolean) -> Unit, onNext: (isAutomaticConfig: Boolean) -> Unit, onBack: () -> Unit, viewModel: ViewModel, modifier: Modifier = Modifier, Loading @@ -29,7 +29,7 @@ internal fun AccountAutoDiscoveryScreen( val (state, dispatch) = viewModel.observe { effect -> when (effect) { Effect.NavigateBack -> onBack() is Effect.NavigateNext -> onNext(viewModel.state.value, effect.isAutomaticConfig) is Effect.NavigateNext -> onNext(effect.isAutomaticConfig) } } Loading Loading @@ -67,11 +67,12 @@ internal fun AccountAutoDiscoveryScreen( internal fun AccountAutoDiscoveryScreenK9Preview() { K9Theme { AccountAutoDiscoveryScreen( onNext = { _, _ -> }, onNext = {}, onBack = {}, viewModel = AccountAutoDiscoveryViewModel( validator = AccountAutoDiscoveryValidator(), getAutoDiscovery = { AutoDiscoveryResult.NoUsableSettingsFound }, accountSetupStateRepository = PreviewAccountSetupStateRepository(), oAuthViewModel = PreviewAccountOAuthViewModel(), ), ) Loading @@ -83,11 +84,12 @@ internal fun AccountAutoDiscoveryScreenK9Preview() { internal fun AccountAutoDiscoveryScreenThunderbirdPreview() { ThunderbirdTheme { AccountAutoDiscoveryScreen( onNext = { _, _ -> }, onNext = { }, onBack = {}, viewModel = AccountAutoDiscoveryViewModel( validator = AccountAutoDiscoveryValidator(), getAutoDiscovery = { AutoDiscoveryResult.NoUsableSettingsFound }, accountSetupStateRepository = PreviewAccountSetupStateRepository(), oAuthViewModel = PreviewAccountOAuthViewModel(), ), ) Loading