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

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

Change to deep link navigation

parent d6d8be95
Loading
Loading
Loading
Loading
+8 −13
Original line number Diff line number Diff line
@@ -3,18 +3,16 @@ package app.k9mail.feature.account.edit.navigation
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavType
import androidx.navigation.compose.composable
import androidx.navigation.navArgument
import app.k9mail.core.ui.compose.common.navigation.getArgument
import app.k9mail.core.ui.compose.common.navigation.deepLinkComposable
import app.k9mail.core.ui.compose.common.navigation.getStringArgument
import app.k9mail.feature.account.edit.ui.EditIncomingServerSettingsNavHost
import app.k9mail.feature.account.edit.ui.EditOutgoingServerSettingsNavHost
import kotlinx.collections.immutable.ImmutableMap
import kotlinx.collections.immutable.persistentMapOf

internal const val ARGUMENT_ACCOUNT_UUID = "accountUuid"

const val NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_INCOMING = "/account/edit/config/incoming/{accountUuid}"
const val NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_OUTGOING = "/account/edit/config/outgoing/{accountUuid}"
const val NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_INCOMING = "account/edit/config/incoming/{accountUuid}"
const val NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_OUTGOING = "account/edit/config/outgoing/{accountUuid}"

fun NavController.navigateToAccountEditConfigIncoming(accountUuid: String) {
    navigate(
@@ -29,36 +27,33 @@ fun NavController.navigateToAccountEditConfigOutgoing(accountUuid: String) {
}

fun NavGraphBuilder.accountEditRoute(
    startDestinationArguments: ImmutableMap<String, String> = persistentMapOf(),
    onBack: () -> Unit,
    onFinish: () -> Unit,
) {
    composable(
    deepLinkComposable(
        route = NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_INCOMING,
        arguments = listOf(
            navArgument(ARGUMENT_ACCOUNT_UUID) {
                type = NavType.StringType
                defaultValue = startDestinationArguments[ARGUMENT_ACCOUNT_UUID] ?: ""
            },
        ),
    ) { backStackEntry ->
        val accountUuid = backStackEntry.getArgument(ARGUMENT_ACCOUNT_UUID)
        val accountUuid = backStackEntry.getStringArgument(ARGUMENT_ACCOUNT_UUID)
        EditIncomingServerSettingsNavHost(
            accountUuid = accountUuid,
            onFinish = { onFinish() },
            onBack = onBack,
        )
    }
    composable(
    deepLinkComposable(
        route = NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_OUTGOING,
        arguments = listOf(
            navArgument(ARGUMENT_ACCOUNT_UUID) {
                type = NavType.StringType
                defaultValue = startDestinationArguments[ARGUMENT_ACCOUNT_UUID] ?: ""
            },
        ),
    ) { backStackEntry ->
        val accountUuid = backStackEntry.getArgument(ARGUMENT_ACCOUNT_UUID)
        val accountUuid = backStackEntry.getStringArgument(ARGUMENT_ACCOUNT_UUID)
        EditOutgoingServerSettingsNavHost(
            accountUuid = accountUuid,
            onFinish = { onFinish() },
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ import androidx.navigation.NavOptions
import app.k9mail.core.ui.compose.common.navigation.deepLinkComposable
import app.k9mail.feature.account.setup.ui.AccountSetupScreen

const val NAVIGATION_ROUTE_ACCOUNT_SETUP = "/account/setup"
const val NAVIGATION_ROUTE_ACCOUNT_SETUP = "account/setup"

fun NavController.navigateToAccountSetup(navOptions: NavOptions? = null) {
    navigate(NAVIGATION_ROUTE_ACCOUNT_SETUP, navOptions)
+5 −5
Original line number Diff line number Diff line
@@ -7,10 +7,12 @@ import androidx.activity.ComponentActivity
import androidx.core.view.WindowCompat
import app.k9mail.core.ui.compose.common.activity.setActivityContent
import app.k9mail.core.ui.compose.common.navigation.toDeepLinkUri
import app.k9mail.feature.account.edit.navigation.NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_INCOMING
import app.k9mail.feature.account.edit.navigation.NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_OUTGOING
import app.k9mail.feature.account.edit.navigation.withAccountUuid
import app.k9mail.feature.account.setup.navigation.NAVIGATION_ROUTE_ACCOUNT_SETUP
import app.k9mail.feature.launcher.ui.FeatureLauncherApp
import app.k9mail.feature.onboarding.navigation.NAVIGATION_ROUTE_ONBOARDING
import kotlinx.collections.immutable.toImmutableMap

class FeatureLauncherActivity : ComponentActivity() {

@@ -45,8 +47,7 @@ class FeatureLauncherActivity : ComponentActivity() {
        @JvmStatic
        fun launchEditIncomingSettings(context: Activity, accountUuid: String) {
            val intent = Intent(context, FeatureLauncherActivity::class.java).apply {
                putExtra(EXTRA_DESTINATION, DESTINATION_EDIT_ACCOUNT_INCOMING_CONFIG)
                putExtra(EXTRA_ACCOUNT_UUID, accountUuid)
                data = NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_INCOMING.withAccountUuid(accountUuid).toDeepLinkUri()
            }
            context.startActivity(intent)
        }
@@ -54,8 +55,7 @@ class FeatureLauncherActivity : ComponentActivity() {
        @JvmStatic
        fun launchEditOutgoingSettings(context: Activity, accountUuid: String) {
            val intent = Intent(context, FeatureLauncherActivity::class.java).apply {
                putExtra(EXTRA_DESTINATION, DESTINATION_EDIT_ACCOUNT_OUTGOING_CONFIG)
                putExtra(EXTRA_ACCOUNT_UUID, accountUuid)
                data = NAVIGATION_ROUTE_ACCOUNT_EDIT_CONFIG_OUTGOING.withAccountUuid(accountUuid).toDeepLinkUri()
            }
            context.startActivity(intent)
        }
+0 −4
Original line number Diff line number Diff line
@@ -12,8 +12,6 @@ import app.k9mail.feature.launcher.FeatureLauncherExternalContract.AccountSetupF
import app.k9mail.feature.launcher.FeatureLauncherExternalContract.ImportSettingsLauncher
import app.k9mail.feature.onboarding.navigation.NAVIGATION_ROUTE_ONBOARDING
import app.k9mail.feature.onboarding.navigation.onboardingRoute
import kotlinx.collections.immutable.ImmutableMap
import kotlinx.collections.immutable.persistentMapOf
import org.koin.compose.koinInject

@Composable
@@ -21,7 +19,6 @@ fun FeatureLauncherNavHost(
    navController: NavHostController,
    onBack: () -> Unit,
    modifier: Modifier = Modifier,
    startDestinationArguments: ImmutableMap<String, String> = persistentMapOf(),
    importSettingsLauncher: ImportSettingsLauncher = koinInject(),
    accountSetupFinishedLauncher: AccountSetupFinishedLauncher = koinInject(),
) {
@@ -41,7 +38,6 @@ fun FeatureLauncherNavHost(
            onFinish = { accountSetupFinishedLauncher.launch(it) },
        )
        accountEditRoute(
            startDestinationArguments = startDestinationArguments,
            onBack = onBack,
            onFinish = { activity.finish() },
        )
+0 −3
Original line number Diff line number Diff line
@@ -9,13 +9,10 @@ import app.k9mail.core.ui.compose.common.activity.LocalActivity
import app.k9mail.core.ui.compose.designsystem.atom.Background
import app.k9mail.core.ui.compose.theme.K9Theme
import app.k9mail.feature.launcher.navigation.FeatureLauncherNavHost
import kotlinx.collections.immutable.ImmutableMap
import kotlinx.collections.immutable.persistentMapOf

@Composable
fun FeatureLauncherApp(
    modifier: Modifier = Modifier,
    startDestinationArguments: ImmutableMap<String, String> = persistentMapOf(),
) {
    val navController = rememberNavController()

Loading