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

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

Merge pull request #7182 from thundernest/add_account_edit_feature

Add account edit feature
parents ce9704b2 3d9235ce
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ package app.k9mail.feature.preview
import app.k9mail.core.common.oauth.OAuthConfigurationFactory
import app.k9mail.feature.account.common.AccountCommonExternalContract
import app.k9mail.feature.account.edit.AccountEditExternalContract
import app.k9mail.feature.account.edit.featureAccountEditModule
import app.k9mail.feature.account.setup.AccountSetupExternalContract
import app.k9mail.feature.account.setup.featureAccountSetupModule
import app.k9mail.feature.preview.account.AccountOwnerNameProvider
@@ -44,5 +45,6 @@ val featureModule: Module = module {
    includes(
        accountModule,
        featureAccountSetupModule,
        featureAccountEditModule,
    )
}
+8 −0
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ import androidx.compose.runtime.Composable
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.setup.navigation.accountSetupRoute
import app.k9mail.feature.account.setup.navigation.navigateToAccountSetup
import app.k9mail.feature.onboarding.navigation.NAVIGATION_ROUTE_ONBOARDING
@@ -26,6 +28,12 @@ fun FeatureNavHost(
            onImport = { /* TODO */ },
        )
        accountSetupRoute(
            onBack = navController::popBackStack,
            onFinish = { accountUuid ->
                navController.navigateToAccountEditConfigIncoming(accountUuid)
            },
        )
        accountEditRoute(
            onBack = navController::popBackStack,
            onFinish = { navController.navigateToOnboarding() },
        )
+2 −1
Original line number Diff line number Diff line
@@ -2,11 +2,12 @@ package com.fsck.k9.featureflag

import app.k9mail.core.featureflag.FeatureFlag
import app.k9mail.core.featureflag.FeatureFlagFactory
import app.k9mail.core.featureflag.FeatureFlagKey

class InMemoryFeatureFlagFactory : FeatureFlagFactory {
    override fun createFeatureCatalog(): List<FeatureFlag> {
        return listOf(
            // empty
            FeatureFlag(FeatureFlagKey("new_account_edit"), false),
        )
    }
}
+11 −2
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@ import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceCategory
import androidx.preference.SwitchPreference
import app.k9mail.core.featureflag.FeatureFlagProvider
import app.k9mail.core.featureflag.toFeatureFlagKey
import app.k9mail.feature.launcher.FeatureLauncherActivity
import com.fsck.k9.Account
import com.fsck.k9.account.BackgroundAccountRemover
import com.fsck.k9.activity.ManageIdentities
@@ -52,6 +55,7 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), ConfirmationDialogFr
    private val notificationChannelManager: NotificationChannelManager by inject()
    private val notificationSettingsUpdater: NotificationSettingsUpdater by inject()
    private val vibrator: Vibrator by inject()
    private val featureFlagProvider: FeatureFlagProvider by inject()

    private lateinit var dataStore: AccountSettingsDataStore

@@ -123,13 +127,16 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), ConfirmationDialogFr
                onDeleteAccount()
                true
            }

            else -> super.onOptionsItemSelected(item)
        }
    }

    private fun initializeIncomingServer() {
        findPreference<Preference>(PREFERENCE_INCOMING_SERVER)?.onClick {
            AccountSetupIncoming.actionEditIncomingSettings(requireActivity(), accountUuid)
            featureFlagProvider.provide("new_account_edit".toFeatureFlagKey())
                .onEnabled { FeatureLauncherActivity.launchEditIncomingSettings(requireActivity(), accountUuid) }
                .onDisabled { AccountSetupIncoming.actionEditIncomingSettings(requireActivity(), accountUuid) }
        }
    }

@@ -155,7 +162,9 @@ class AccountSettingsFragment : PreferenceFragmentCompat(), ConfirmationDialogFr

    private fun initializeOutgoingServer() {
        findPreference<Preference>(PREFERENCE_OUTGOING_SERVER)?.onClick {
            AccountSetupOutgoing.actionEditOutgoingSettings(requireActivity(), accountUuid)
            featureFlagProvider.provide("new_account_edit".toFeatureFlagKey())
                .onEnabled { FeatureLauncherActivity.launchEditOutgoingSettings(requireActivity(), accountUuid) }
                .onDisabled { AccountSetupOutgoing.actionEditOutgoingSettings(requireActivity(), accountUuid) }
        }
    }

+2 −0
Original line number Diff line number Diff line
@@ -2,3 +2,5 @@ package app.k9mail.core.featureflag

@JvmInline
value class FeatureFlagKey(val key: String)

fun String.toFeatureFlagKey(): FeatureFlagKey = FeatureFlagKey(this)
Loading