Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit b90301ec authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé
Browse files

Add save settings to edit account

parent c29bc905
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ import androidx.compose.ui.Modifier
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import app.k9mail.feature.account.edit.navigation.accountEditRoute
import app.k9mail.feature.account.edit.navigation.navigateToAccountEditConfigIncoming
import app.k9mail.feature.account.edit.navigation.navigateToAccountEditIncomingServerSettings
import app.k9mail.feature.account.setup.navigation.accountSetupRoute
import app.k9mail.feature.account.setup.navigation.navigateToAccountSetup
import app.k9mail.feature.onboarding.navigation.NAVIGATION_ROUTE_ONBOARDING
@@ -30,7 +30,7 @@ fun FeatureNavHost(
        accountSetupRoute(
            onBack = navController::popBackStack,
            onFinish = { accountUuid ->
                navController.navigateToAccountEditConfigIncoming(accountUuid)
                navController.navigateToAccountEditIncomingServerSettings(accountUuid)
            },
        )
        accountEditRoute(
+0 −2
Original line number Diff line number Diff line
package app.k9mail.core.ui.compose.designsystem.molecule

import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.ExperimentalAnimationApi
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
@@ -14,7 +13,6 @@ import androidx.compose.ui.tooling.preview.Preview
import app.k9mail.core.ui.compose.designsystem.atom.text.TextSubtitle1
import app.k9mail.core.ui.compose.theme.PreviewWithThemes

@OptIn(ExperimentalAnimationApi::class)
@Composable
fun ContentLoadingErrorView(
    state: ContentLoadingErrorState,
+1 −1
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@ import app.k9mail.core.ui.compose.theme.MainTheme
import app.k9mail.core.ui.compose.theme.PreviewWithThemes

@Composable
internal fun SuccessView(
fun SuccessView(
    message: String,
    modifier: Modifier = Modifier,
) {
+1 −1
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ import com.fsck.k9.mail.ServerSettings
interface AccountEditExternalContract {

    sealed interface AccountUpdaterResult {
        data class Success(val message: String) : AccountUpdaterResult
        data class Success(val accountUuid: String) : AccountUpdaterResult
        data class Failure(val error: AccountUpdaterFailure) : AccountUpdaterResult
    }

+35 −4
Original line number Diff line number Diff line
@@ -2,9 +2,13 @@ package app.k9mail.feature.account.edit

import app.k9mail.feature.account.common.featureAccountCommonModule
import app.k9mail.feature.account.edit.domain.AccountEditDomainContract
import app.k9mail.feature.account.edit.domain.usecase.GetAccountState
import app.k9mail.feature.account.edit.domain.usecase.LoadAccountState
import app.k9mail.feature.account.edit.ui.EditIncomingServerSettingsViewModel
import app.k9mail.feature.account.edit.ui.EditOutgoingServerSettingsViewModel
import app.k9mail.feature.account.edit.domain.usecase.SaveServerSettings
import app.k9mail.feature.account.edit.ui.server.settings.modify.ModifyIncomingServerSettingsViewModel
import app.k9mail.feature.account.edit.ui.server.settings.modify.ModifyOutgoingServerSettingsViewModel
import app.k9mail.feature.account.edit.ui.server.settings.save.SaveIncomingServerSettingsViewModel
import app.k9mail.feature.account.edit.ui.server.settings.save.SaveOutgoingServerSettingsViewModel
import app.k9mail.feature.account.oauth.featureAccountOAuthModule
import app.k9mail.feature.account.server.certificate.featureAccountServerCertificateModule
import app.k9mail.feature.account.server.settings.featureAccountServerSettingsModule
@@ -28,8 +32,21 @@ val featureAccountEditModule = module {
        )
    }

    factory<AccountEditDomainContract.UseCase.GetAccountState> {
        GetAccountState(
            accountStateRepository = get(),
        )
    }

    factory<AccountEditDomainContract.UseCase.SaveServerSettings> {
        SaveServerSettings(
            getAccountState = get(),
            serverSettingsUpdater = get(),
        )
    }

    viewModel { (accountUuid: String) ->
        EditIncomingServerSettingsViewModel(
        ModifyIncomingServerSettingsViewModel(
            accountUuid = accountUuid,
            accountStateLoader = get(),
            validator = get(),
@@ -38,11 +55,25 @@ val featureAccountEditModule = module {
    }

    viewModel { (accountUuid: String) ->
        EditOutgoingServerSettingsViewModel(
        ModifyOutgoingServerSettingsViewModel(
            accountUuid = accountUuid,
            accountStateLoader = get(),
            validator = get(),
            accountStateRepository = get(),
        )
    }

    viewModel { (accountUuid: String) ->
        SaveIncomingServerSettingsViewModel(
            accountUuid = accountUuid,
            saveServerSettings = get(),
        )
    }

    viewModel { (accountUuid: String) ->
        SaveOutgoingServerSettingsViewModel(
            accountUuid = accountUuid,
            saveServerSettings = get(),
        )
    }
}
Loading