commit 68d8e0e9c4498ad8265cb25edefcc4c38900c040
parent ba2e4617d50deaaa62c61625058e9cf42a351886
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Tue, 22 Aug 2023 01:06:53 +0200

fix: main activity single task

Diffstat:
Mapp/src/main/AndroidManifest.xml | 1+
Mapp/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt | 20++++++++++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml @@ -40,6 +40,7 @@ <activity android:name=".ui.manager.MainActivity" android:theme="@style/AppTheme" + android:launchMode="singleTask" android:exported="true"> <intent-filter> <action android:name="android.intent.action.MAIN" /> diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/MainActivity.kt @@ -1,23 +1,39 @@ package me.rhunk.snapenhance.ui.manager +import android.content.Intent import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.runtime.remember +import androidx.navigation.NavGraph.Companion.findStartDestination +import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController import me.rhunk.snapenhance.SharedContextHolder import me.rhunk.snapenhance.ui.AppMaterialTheme class MainActivity : ComponentActivity() { - lateinit var sections: Map<EnumSection, Section> + private lateinit var sections: Map<EnumSection, Section> + private lateinit var navController: NavHostController override fun onPostResume() { super.onPostResume() sections.values.forEach { it.onResumed() } } + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + intent?.getStringExtra("route")?.let { route -> + navController.popBackStack() + navController.navigate(route) { + popUpTo(navController.graph.findStartDestination().id){ + inclusive = true + } + } + } + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -38,7 +54,7 @@ class MainActivity : ComponentActivity() { } setContent { - val navController = rememberNavController() + navController = rememberNavController() val navigation = remember { Navigation(managerContext, sections, navController) } AppMaterialTheme { Scaffold(