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:
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(