Loading app/k9mail/src/main/java/com/fsck/k9/backends/KoinModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.BuildConfig import com.fsck.k9.backend.BackendManager import com.fsck.k9.backend.imap.BackendIdleRefreshManager import com.fsck.k9.backend.imap.SystemAlarmManager import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory import com.fsck.k9.mail.store.imap.IdleRefreshManager import org.koin.core.qualifier.named import org.koin.dsl.module Loading Loading @@ -34,6 +35,7 @@ val backendsModule = module { single<IdleRefreshManager> { BackendIdleRefreshManager(alarmManager = get()) } single { Pop3BackendFactory(get(), get()) } single(named("ClientIdAppName")) { BuildConfig.CLIENT_ID_APP_NAME } single<OAuth2TokenProviderFactory> { RealOAuth2TokenProviderFactory(context = get()) } developmentModuleAdditions() } app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProviderFactory.kt 0 → 100644 +14 −0 Original line number Diff line number Diff line package com.fsck.k9.backends import android.content.Context import com.fsck.k9.mail.oauth.AuthStateStorage import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory class RealOAuth2TokenProviderFactory( private val context: Context, ) : OAuth2TokenProviderFactory { override fun create(authStateStorage: AuthStateStorage): OAuth2TokenProvider { return RealOAuth2TokenProvider(context, authStateStorage) } } feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/AccountSetupModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ val featureAccountSetupModule: Module = module { ValidateServerSettings( imapValidator = ImapServerSettingsValidator( trustedSocketFactory = get(), oAuth2TokenProvider = null, // TODO oAuth2TokenProviderFactory = get(), clientIdAppName = "null", ), pop3Validator = Pop3ServerSettingsValidator( Loading @@ -63,7 +63,7 @@ val featureAccountSetupModule: Module = module { ), smtpValidator = SmtpServerSettingsValidator( trustedSocketFactory = get(), oAuth2TokenProvider = null, // TODO oAuth2TokenProviderFactory = get(), ), ) } Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/domain/usecase/ValidateServerSettings.kt +3 −3 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ internal class ValidateServerSettings( override suspend fun execute(settings: ServerSettings): ServerSettingsValidationResult = withContext(coroutineDispatcher) { return@withContext when (settings.type) { "imap" -> imapValidator.checkServerSettings(settings) "pop3" -> pop3Validator.checkServerSettings(settings) "smtp" -> smtpValidator.checkServerSettings(settings) "imap" -> imapValidator.checkServerSettings(settings, authStateStorage = null) "pop3" -> pop3Validator.checkServerSettings(settings, authStateStorage = null) "smtp" -> smtpValidator.checkServerSettings(settings, authStateStorage = null) else -> { throw IllegalArgumentException("Unsupported server type: ${settings.type}") } Loading feature/account/setup/src/test/kotlin/app/k9mail/feature/account/setup/AccountSetupModuleKtTest.kt +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ import app.k9mail.feature.account.setup.ui.incoming.AccountIncomingConfigContrac import app.k9mail.feature.account.setup.ui.options.AccountOptionsContract import app.k9mail.feature.account.setup.ui.outgoing.AccountOutgoingConfigContract import app.k9mail.feature.account.setup.ui.validation.AccountValidationContract import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory import com.fsck.k9.mail.ssl.TrustedSocketFactory import okhttp3.OkHttpClient import org.junit.Test Loading Loading @@ -37,6 +39,14 @@ class AccountSetupModuleKtTest : KoinTest { AccountCreator { _ -> AccountCreatorResult.Success("accountUuid") } } single<OAuthConfigurationFactory> { OAuthConfigurationFactory { emptyMap() } } single<OAuth2TokenProviderFactory> { OAuth2TokenProviderFactory { _ -> object : OAuth2TokenProvider { override fun getToken(timeoutMillis: Long) = TODO() override fun invalidateToken() = TODO() } } } } @Test Loading Loading
app/k9mail/src/main/java/com/fsck/k9/backends/KoinModule.kt +2 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.BuildConfig import com.fsck.k9.backend.BackendManager import com.fsck.k9.backend.imap.BackendIdleRefreshManager import com.fsck.k9.backend.imap.SystemAlarmManager import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory import com.fsck.k9.mail.store.imap.IdleRefreshManager import org.koin.core.qualifier.named import org.koin.dsl.module Loading Loading @@ -34,6 +35,7 @@ val backendsModule = module { single<IdleRefreshManager> { BackendIdleRefreshManager(alarmManager = get()) } single { Pop3BackendFactory(get(), get()) } single(named("ClientIdAppName")) { BuildConfig.CLIENT_ID_APP_NAME } single<OAuth2TokenProviderFactory> { RealOAuth2TokenProviderFactory(context = get()) } developmentModuleAdditions() }
app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProviderFactory.kt 0 → 100644 +14 −0 Original line number Diff line number Diff line package com.fsck.k9.backends import android.content.Context import com.fsck.k9.mail.oauth.AuthStateStorage import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory class RealOAuth2TokenProviderFactory( private val context: Context, ) : OAuth2TokenProviderFactory { override fun create(authStateStorage: AuthStateStorage): OAuth2TokenProvider { return RealOAuth2TokenProvider(context, authStateStorage) } }
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/AccountSetupModule.kt +2 −2 Original line number Diff line number Diff line Loading @@ -55,7 +55,7 @@ val featureAccountSetupModule: Module = module { ValidateServerSettings( imapValidator = ImapServerSettingsValidator( trustedSocketFactory = get(), oAuth2TokenProvider = null, // TODO oAuth2TokenProviderFactory = get(), clientIdAppName = "null", ), pop3Validator = Pop3ServerSettingsValidator( Loading @@ -63,7 +63,7 @@ val featureAccountSetupModule: Module = module { ), smtpValidator = SmtpServerSettingsValidator( trustedSocketFactory = get(), oAuth2TokenProvider = null, // TODO oAuth2TokenProviderFactory = get(), ), ) } Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/domain/usecase/ValidateServerSettings.kt +3 −3 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ internal class ValidateServerSettings( override suspend fun execute(settings: ServerSettings): ServerSettingsValidationResult = withContext(coroutineDispatcher) { return@withContext when (settings.type) { "imap" -> imapValidator.checkServerSettings(settings) "pop3" -> pop3Validator.checkServerSettings(settings) "smtp" -> smtpValidator.checkServerSettings(settings) "imap" -> imapValidator.checkServerSettings(settings, authStateStorage = null) "pop3" -> pop3Validator.checkServerSettings(settings, authStateStorage = null) "smtp" -> smtpValidator.checkServerSettings(settings, authStateStorage = null) else -> { throw IllegalArgumentException("Unsupported server type: ${settings.type}") } Loading
feature/account/setup/src/test/kotlin/app/k9mail/feature/account/setup/AccountSetupModuleKtTest.kt +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,8 @@ import app.k9mail.feature.account.setup.ui.incoming.AccountIncomingConfigContrac import app.k9mail.feature.account.setup.ui.options.AccountOptionsContract import app.k9mail.feature.account.setup.ui.outgoing.AccountOutgoingConfigContract import app.k9mail.feature.account.setup.ui.validation.AccountValidationContract import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.mail.oauth.OAuth2TokenProviderFactory import com.fsck.k9.mail.ssl.TrustedSocketFactory import okhttp3.OkHttpClient import org.junit.Test Loading Loading @@ -37,6 +39,14 @@ class AccountSetupModuleKtTest : KoinTest { AccountCreator { _ -> AccountCreatorResult.Success("accountUuid") } } single<OAuthConfigurationFactory> { OAuthConfigurationFactory { emptyMap() } } single<OAuth2TokenProviderFactory> { OAuth2TokenProviderFactory { _ -> object : OAuth2TokenProvider { override fun getToken(timeoutMillis: Long) = TODO() override fun invalidateToken() = TODO() } } } } @Test Loading