@@ -56,6 +56,7 @@ import androidx.compose.ui.Alignment.Companion.CenterHorizontally
5656import androidx.compose.ui.Alignment.Companion.CenterVertically
5757import androidx.compose.ui.ExperimentalComposeUiApi
5858import androidx.compose.ui.Modifier
59+ import androidx.compose.ui.platform.LocalContext
5960import androidx.compose.ui.platform.testTag
6061import androidx.compose.ui.res.painterResource
6162import androidx.compose.ui.res.stringResource
@@ -82,6 +83,7 @@ import ee.ria.DigiDoc.ui.theme.Dimensions.iconSizeM
8283import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
8384import ee.ria.DigiDoc.utils.Route
8485import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
86+ import ee.ria.DigiDoc.utils.snackbar.SnackBarManager.showMessage
8587import ee.ria.DigiDoc.viewmodel.HomeViewModel
8688import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
8789import kotlinx.coroutines.CoroutineScope
@@ -96,6 +98,7 @@ fun HomeScreen(
9698 sharedMenuViewModel : SharedMenuViewModel ,
9799 homeViewModel : HomeViewModel = hiltViewModel(),
98100) {
101+ val context = LocalContext .current
99102 val activity = LocalActivity .current
100103 val openCrashDetectorDialog = remember { mutableStateOf(false ) }
101104 val hasUnsentReports by homeViewModel.hasUnsentReports.asFlow().collectAsState(Tasks .forResult(false ))
@@ -110,10 +113,24 @@ fun HomeScreen(
110113
111114 val messages by SnackBarManager .messages.collectAsState(emptyList())
112115
116+ val savedStateHandle = navController.currentBackStackEntry?.savedStateHandle
117+ val snackbarMessageFlow =
118+ savedStateHandle
119+ ?.getStateFlow<Int ?>(" snackbar_message" , null )
120+
121+ val snackbarMessage by snackbarMessageFlow?.collectAsState() ? : remember { mutableStateOf(null ) }
122+
113123 BackHandler {
114124 activity?.finish()
115125 }
116126
127+ LaunchedEffect (snackbarMessage) {
128+ snackbarMessage?.let { message ->
129+ showMessage(context, message)
130+ savedStateHandle?.set(" snackbar_message" , null )
131+ }
132+ }
133+
117134 LaunchedEffect (homeViewModel.didAppCrashOnPreviousExecution(), hasUnsentReports) {
118135 if (! homeViewModel.isCrashSendingAlwaysEnabled() && hasUnsentReports.result) {
119136 openCrashDetectorDialog.value = true
0 commit comments