11package com.darkrockstudios.app.securecamera
22
3- import android.net.Uri
43import androidx.compose.foundation.layout.imePadding
54import androidx.compose.material3.Scaffold
65import androidx.compose.material3.SnackbarHost
76import androidx.compose.material3.SnackbarHostState
8- import androidx.compose.runtime.Composable
9- import androidx.compose.runtime.MutableState
10- import androidx.compose.runtime.collectAsState
11- import androidx.compose.runtime.getValue
12- import androidx.compose.runtime.mutableStateOf
13- import androidx.compose.runtime.remember
14- import androidx.compose.runtime.saveable.rememberSaveable
7+ import androidx.compose.runtime.*
158import androidx.compose.ui.Modifier
169import androidx.lifecycle.compose.LifecycleResumeEffect
1710import androidx.navigation.NavHostController
18- import androidx.navigation.compose.rememberNavController
1911import com.darkrockstudios.app.securecamera.auth.AuthorizationRepository
20- import com.darkrockstudios.app.securecamera.navigation.AppDestinations
2112import com.darkrockstudios.app.securecamera.navigation.AppNavHost
2213import com.darkrockstudios.app.securecamera.navigation.enforceAuth
2314import com.darkrockstudios.app.securecamera.preferences.AppPreferencesDataSource
@@ -28,33 +19,16 @@ import org.koin.compose.koinInject
2819@Composable
2920fun App (
3021 capturePhoto : MutableState <Boolean ?>,
31- photosToImport : List <Uri >
22+ startDestination : String ,
23+ navController : NavHostController
3224) {
3325 KoinContext {
3426 SecureCameraTheme {
3527 val snackbarHostState = remember { SnackbarHostState () }
36- val navController = rememberNavController()
3728 val preferencesManager = koinInject<AppPreferencesDataSource >()
3829 val authorizationRepository = koinInject<AuthorizationRepository >()
3930
4031 val hasCompletedIntro by preferencesManager.hasCompletedIntro.collectAsState(initial = null )
41- val startDestination = rememberSaveable(hasCompletedIntro) {
42- if (hasCompletedIntro == true ) {
43- val targetDestination = if (photosToImport.isNotEmpty()) {
44- AppDestinations .IMPORT_PHOTOS_ROUTE
45- } else {
46- AppDestinations .CAMERA_ROUTE
47- }
48-
49- if (authorizationRepository.checkSessionValidity()) {
50- targetDestination
51- } else {
52- AppDestinations .createPinVerificationRoute(targetDestination)
53- }
54- } else {
55- AppDestinations .INTRODUCTION_ROUTE
56- }
57- }
5832
5933 VerifySessionOnResume (navController, hasCompletedIntro, authorizationRepository)
6034
@@ -63,17 +37,13 @@ fun App(
6337 snackbarHost = { SnackbarHost (snackbarHostState) },
6438 modifier = Modifier .imePadding()
6539 ) { paddingValues ->
66- // Create a mutable state to hold the photos to import
67- val photosToImportState = remember { mutableStateOf(photosToImport) }
68-
6940 AppNavHost (
7041 navController = navController,
7142 capturePhoto = capturePhoto,
7243 modifier = Modifier ,
7344 snackbarHostState = snackbarHostState,
7445 startDestination = startDestination,
7546 paddingValues = paddingValues,
76- photosToImport = photosToImportState
7747 )
7848 }
7949 }
@@ -82,7 +52,7 @@ fun App(
8252}
8353
8454@Composable
85- fun VerifySessionOnResume (
55+ private fun VerifySessionOnResume (
8656 navController : NavHostController ,
8757 hasCompletedIntro : Boolean? ,
8858 authorizationRepository : AuthorizationRepository
0 commit comments