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

Unverified Commit 02fcf5b7 authored by Wolf-Martell Montwé's avatar Wolf-Martell Montwé Committed by GitHub
Browse files

Merge pull request #7169 from thundernest/refactor_account_server_settings

Refactor account server settings
parents 600a9057 8d974707
Loading
Loading
Loading
Loading
+0 −40
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="account_server_config_protocol_type_label">Protocol</string>
    <string name="account_server_config_server_label">Server</string>
    <string name="account_server_config_security_label">Security</string>
    <string name="account_server_config_port_label">Port</string>
    <string name="account_server_config_authentication_label">Authentication</string>
    <string name="account_server_config_username_label">Username</string>

    <string name="account_server_config_connection_security_none">None</string>
    <string name="account_server_config_connection_security_start_tls">StartTLS</string>
    <string name="account_server_config_connection_security_ssl">SSL/TLS</string>

    <string name="account_server_config_authentication_none">None</string>
    <string name="account_server_config_authentication_password_cleartext">Normal password</string>
    <string name="account_server_config_authentication_password_encrypted">Encrypted password</string>
    <string name="account_server_config_authentication_client_certificate">Client certificate</string>
    <string name="account_server_config_authentication_client_oauth">OAuth 2.0</string>

    <string name="account_server_config_client_certificate_none_selected">None</string>
    <string name="account_server_config_client_certificate_label">Client certificate</string>

    <string name="account_server_config_incoming_top_bar_title">Incoming server settings</string>

    <string name="account_server_config_incoming_imap_namespace_label">Auto-detect IMAP namespace</string>
    <string name="account_server_config_incoming_imap_prefix_label">IMAP path prefix</string>
    <string name="account_server_config_incoming_imap_compression_label">Use compression</string>
    <string name="account_server_config_incoming_imap_send_client_id_label">Send client ID</string>

    <string name="account_server_config_outgoing_top_bar_title">Outgoing server settings</string>

    <string name="account_server_config_validation_error_email_address_required">Email address is required.</string>
    <string name="account_server_config_validation_error_email_address_invalid">Email address is invalid.</string>
    <string name="account_server_config_validation_error_server_required">Server name is required.</string>
    <string name="account_server_config_validation_error_port_required">Port is required.</string>
    <string name="account_server_config_validation_error_port_invalid">Port is invalid (must be 1–65535).</string>
    <string name="account_server_config_validation_error_username_required">Username is required.</string>
    <string name="account_server_config_validation_error_password_required">Password is required.</string>
    <string name="account_server_config_validation_error_imap_prefix_blank">Imap prefix can\'t be blank.</string>
</resources>
+2 −2
Original line number Diff line number Diff line
@@ -3,8 +3,8 @@ plugins {
}

android {
    namespace = "app.k9mail.feature.account.server.config"
    resourcePrefix = "account_server_config_"
    namespace = "app.k9mail.feature.account.server.settings"
    resourcePrefix = "account_server_settings_"

    buildTypes {
        debug {
+30 −0
Original line number Diff line number Diff line
package app.k9mail.feature.account.server.config
package app.k9mail.feature.account.server.settings

import app.k9mail.feature.account.server.config.ui.incoming.AccountIncomingConfigContract
import app.k9mail.feature.account.server.config.ui.incoming.AccountIncomingConfigValidator
import app.k9mail.feature.account.server.config.ui.incoming.AccountIncomingConfigViewModel
import app.k9mail.feature.account.server.config.ui.outgoing.AccountOutgoingConfigContract
import app.k9mail.feature.account.server.config.ui.outgoing.AccountOutgoingConfigValidator
import app.k9mail.feature.account.server.config.ui.outgoing.AccountOutgoingConfigViewModel
import app.k9mail.feature.account.server.settings.ui.incoming.IncomingServerSettingsContract
import app.k9mail.feature.account.server.settings.ui.incoming.IncomingServerSettingsValidator
import app.k9mail.feature.account.server.settings.ui.incoming.IncomingServerSettingsViewModel
import app.k9mail.feature.account.server.settings.ui.outgoing.OutgoingServerSettingsContract
import app.k9mail.feature.account.server.settings.ui.outgoing.OutgoingServerSettingsValidator
import app.k9mail.feature.account.server.settings.ui.outgoing.OutgoingServerSettingsViewModel
import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.core.module.Module
import org.koin.dsl.module

val featureAccountServerConfigModule: Module = module {
    factory<AccountIncomingConfigContract.Validator> { AccountIncomingConfigValidator() }
    factory<AccountOutgoingConfigContract.Validator> { AccountOutgoingConfigValidator() }
    factory<IncomingServerSettingsContract.Validator> { IncomingServerSettingsValidator() }
    factory<OutgoingServerSettingsContract.Validator> { OutgoingServerSettingsValidator() }

    viewModel {
        AccountIncomingConfigViewModel(
        IncomingServerSettingsViewModel(
            validator = get(),
            accountStateRepository = get(),
        )
    }

    viewModel {
        AccountOutgoingConfigViewModel(
        OutgoingServerSettingsViewModel(
            validator = get(),
            accountStateRepository = get(),
        )
+2 −2
Original line number Diff line number Diff line
package app.k9mail.feature.account.server.config.domain
package app.k9mail.feature.account.server.settings.domain

import app.k9mail.core.common.domain.usecase.validation.ValidationResult

interface ServerConfigDomainContract {
interface ServerSettingsDomainContract {

    interface UseCase {

+2 −2
Original line number Diff line number Diff line
package app.k9mail.feature.account.server.config.domain.usecase
package app.k9mail.feature.account.server.settings.domain.usecase

import app.k9mail.core.common.domain.usecase.validation.ValidationError
import app.k9mail.core.common.domain.usecase.validation.ValidationResult
import app.k9mail.feature.account.server.config.domain.ServerConfigDomainContract.UseCase
import app.k9mail.feature.account.server.settings.domain.ServerSettingsDomainContract.UseCase

class ValidateEmailAddress : UseCase.ValidateEmailAddress {

Loading