Loading app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -30,7 +30,7 @@ fun FeatureNavHost( accountSetupRoute( onBack = navController::popBackStack, onFinish = { accountUuid -> navController.navigateToAccountEditConfigIncoming(accountUuid) navController.navigateToAccountEditIncomingServerSettings(accountUuid) }, ) accountEditRoute( Loading app-ui-catalog/src/main/java/app/k9mail/ui/catalog/ui/molecule/items/StateItems.kt +24 −0 Original line number Diff line number Diff line Loading @@ -26,7 +26,31 @@ fun LazyGridScope.stateItems() { ItemOutlined { ErrorView( title = "Error", ) } } item { ItemOutlined { ErrorView( title = "Error with message", message = "Something went wrong", ) } } item { ItemOutlined { ErrorView( title = "Error with retry", onRetry = {}, ) } } item { ItemOutlined { ErrorView( title = "Error with retry and message", message = "Something went wrong", onRetry = {}, ) } } Loading app/k9mail/src/main/java/com/fsck/k9/account/AccountServerSettingsUpdater.kt +18 −1 Original line number Diff line number Diff line package com.fsck.k9.account import app.k9mail.core.common.mail.Protocols import app.k9mail.feature.account.edit.AccountEditExternalContract import app.k9mail.feature.account.edit.AccountEditExternalContract.AccountUpdaterFailure import app.k9mail.feature.account.edit.AccountEditExternalContract.AccountUpdaterResult import com.fsck.k9.logging.Timber import com.fsck.k9.mail.ServerSettings import com.fsck.k9.mail.store.imap.ImapStoreSettings import com.fsck.k9.mail.store.imap.ImapStoreSettings.autoDetectNamespace import com.fsck.k9.mail.store.imap.ImapStoreSettings.isSendClientId import com.fsck.k9.mail.store.imap.ImapStoreSettings.isUseCompression import com.fsck.k9.mail.store.imap.ImapStoreSettings.pathPrefix import com.fsck.k9.preferences.AccountManager import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers Loading Loading @@ -42,7 +48,18 @@ class AccountServerSettingsUpdater( ) if (isIncoming) { if (serverSettings.type == Protocols.IMAP) { account.useCompression = serverSettings.isUseCompression account.isSendClientIdEnabled = serverSettings.isSendClientId account.incomingServerSettings = serverSettings.copy( extra = ImapStoreSettings.createExtra( autoDetectNamespace = serverSettings.autoDetectNamespace, pathPrefix = serverSettings.pathPrefix, ), ) } else { account.incomingServerSettings = serverSettings } } else { account.outgoingServerSettings = serverSettings } Loading app/k9mail/src/main/java/com/fsck/k9/account/AccountStateLoader.kt +11 −1 Original line number Diff line number Diff line package com.fsck.k9.account import app.k9mail.core.common.mail.Protocols import app.k9mail.feature.account.common.AccountCommonExternalContract import app.k9mail.feature.account.common.domain.entity.AccountState import app.k9mail.feature.account.common.domain.entity.AuthorizationState import com.fsck.k9.Account import com.fsck.k9.backends.toImapServerSettings import com.fsck.k9.logging.Timber import com.fsck.k9.mail.ServerSettings import com.fsck.k9.preferences.AccountManager import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers Loading Loading @@ -36,9 +40,15 @@ class AccountStateLoader( return AccountState( uuid = account.uuid, emailAddress = account.email, incomingServerSettings = account.incomingServerSettings, incomingServerSettings = account.incomingServerSettingsExtra, outgoingServerSettings = account.outgoingServerSettings, authorizationState = AuthorizationState(account.oAuthState), ) } } private val Account.incomingServerSettingsExtra: ServerSettings get() = when (incomingServerSettings.type) { Protocols.IMAP -> toImapServerSettings() else -> incomingServerSettings } app/k9mail/src/test/java/com/fsck/k9/account/AccountStateLoaderTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -54,9 +54,9 @@ class AccountStateLoaderTest { private companion object { val INCOMING_SERVER_SETTINGS = ServerSettings( type = "imap", host = "imap.example.org", port = 143, type = "pop3", host = "pop.example.org", port = 465, connectionSecurity = ConnectionSecurity.SSL_TLS_REQUIRED, authenticationType = AuthType.PLAIN, username = "username", Loading Loading
app-feature-preview/src/main/java/app/k9mail/feature/preview/navigation/FeatureNavHost.kt +2 −2 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -30,7 +30,7 @@ fun FeatureNavHost( accountSetupRoute( onBack = navController::popBackStack, onFinish = { accountUuid -> navController.navigateToAccountEditConfigIncoming(accountUuid) navController.navigateToAccountEditIncomingServerSettings(accountUuid) }, ) accountEditRoute( Loading
app-ui-catalog/src/main/java/app/k9mail/ui/catalog/ui/molecule/items/StateItems.kt +24 −0 Original line number Diff line number Diff line Loading @@ -26,7 +26,31 @@ fun LazyGridScope.stateItems() { ItemOutlined { ErrorView( title = "Error", ) } } item { ItemOutlined { ErrorView( title = "Error with message", message = "Something went wrong", ) } } item { ItemOutlined { ErrorView( title = "Error with retry", onRetry = {}, ) } } item { ItemOutlined { ErrorView( title = "Error with retry and message", message = "Something went wrong", onRetry = {}, ) } } Loading
app/k9mail/src/main/java/com/fsck/k9/account/AccountServerSettingsUpdater.kt +18 −1 Original line number Diff line number Diff line package com.fsck.k9.account import app.k9mail.core.common.mail.Protocols import app.k9mail.feature.account.edit.AccountEditExternalContract import app.k9mail.feature.account.edit.AccountEditExternalContract.AccountUpdaterFailure import app.k9mail.feature.account.edit.AccountEditExternalContract.AccountUpdaterResult import com.fsck.k9.logging.Timber import com.fsck.k9.mail.ServerSettings import com.fsck.k9.mail.store.imap.ImapStoreSettings import com.fsck.k9.mail.store.imap.ImapStoreSettings.autoDetectNamespace import com.fsck.k9.mail.store.imap.ImapStoreSettings.isSendClientId import com.fsck.k9.mail.store.imap.ImapStoreSettings.isUseCompression import com.fsck.k9.mail.store.imap.ImapStoreSettings.pathPrefix import com.fsck.k9.preferences.AccountManager import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers Loading Loading @@ -42,7 +48,18 @@ class AccountServerSettingsUpdater( ) if (isIncoming) { if (serverSettings.type == Protocols.IMAP) { account.useCompression = serverSettings.isUseCompression account.isSendClientIdEnabled = serverSettings.isSendClientId account.incomingServerSettings = serverSettings.copy( extra = ImapStoreSettings.createExtra( autoDetectNamespace = serverSettings.autoDetectNamespace, pathPrefix = serverSettings.pathPrefix, ), ) } else { account.incomingServerSettings = serverSettings } } else { account.outgoingServerSettings = serverSettings } Loading
app/k9mail/src/main/java/com/fsck/k9/account/AccountStateLoader.kt +11 −1 Original line number Diff line number Diff line package com.fsck.k9.account import app.k9mail.core.common.mail.Protocols import app.k9mail.feature.account.common.AccountCommonExternalContract import app.k9mail.feature.account.common.domain.entity.AccountState import app.k9mail.feature.account.common.domain.entity.AuthorizationState import com.fsck.k9.Account import com.fsck.k9.backends.toImapServerSettings import com.fsck.k9.logging.Timber import com.fsck.k9.mail.ServerSettings import com.fsck.k9.preferences.AccountManager import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.Dispatchers Loading Loading @@ -36,9 +40,15 @@ class AccountStateLoader( return AccountState( uuid = account.uuid, emailAddress = account.email, incomingServerSettings = account.incomingServerSettings, incomingServerSettings = account.incomingServerSettingsExtra, outgoingServerSettings = account.outgoingServerSettings, authorizationState = AuthorizationState(account.oAuthState), ) } } private val Account.incomingServerSettingsExtra: ServerSettings get() = when (incomingServerSettings.type) { Protocols.IMAP -> toImapServerSettings() else -> incomingServerSettings }
app/k9mail/src/test/java/com/fsck/k9/account/AccountStateLoaderTest.kt +3 −3 Original line number Diff line number Diff line Loading @@ -54,9 +54,9 @@ class AccountStateLoaderTest { private companion object { val INCOMING_SERVER_SETTINGS = ServerSettings( type = "imap", host = "imap.example.org", port = 143, type = "pop3", host = "pop.example.org", port = 465, connectionSecurity = ConnectionSecurity.SSL_TLS_REQUIRED, authenticationType = AuthType.PLAIN, username = "username", Loading