Skip to content

Commit 4e9e1c1

Browse files
committed
MOPPAND-1738 Success message upon saving Crypto and Signed container.
1 parent df9994f commit 4e9e1c1

File tree

6 files changed

+45
-4
lines changed

6 files changed

+45
-4
lines changed

app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/HomeScreen.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import androidx.compose.ui.Alignment.Companion.CenterHorizontally
5656
import androidx.compose.ui.Alignment.Companion.CenterVertically
5757
import androidx.compose.ui.ExperimentalComposeUiApi
5858
import androidx.compose.ui.Modifier
59+
import androidx.compose.ui.platform.LocalContext
5960
import androidx.compose.ui.platform.testTag
6061
import androidx.compose.ui.res.painterResource
6162
import androidx.compose.ui.res.stringResource
@@ -82,6 +83,7 @@ import ee.ria.DigiDoc.ui.theme.Dimensions.iconSizeM
8283
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
8384
import ee.ria.DigiDoc.utils.Route
8485
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
86+
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager.showMessage
8587
import ee.ria.DigiDoc.viewmodel.HomeViewModel
8688
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
8789
import 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

app/src/main/kotlin/ee/ria/DigiDoc/ui/component/crypto/EncryptNavigation.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ fun EncryptNavigation(
441441
} ?: run {
442442
cryptoContainer?.file?.let {
443443
sharedContainerViewModel.saveContainerFile(it, result)
444-
showMessage(context, R.string.file_saved)
444+
showMessage(context, R.string.crypto_saved_container_success)
445445
isSaved = true
446446
} ?: showMessage(context, R.string.file_saved_error)
447447
}
@@ -550,6 +550,7 @@ fun EncryptNavigation(
550550
navController,
551551
encryptViewModel,
552552
sharedContainerViewModel,
553+
true,
553554
)
554555
}
555556
@Suppress("AssignedValueIsNeverRead")
@@ -1228,6 +1229,7 @@ private fun handleBackButtonClick(
12281229
navController: NavHostController,
12291230
encryptViewModel: EncryptViewModel,
12301231
sharedContainerViewModel: SharedContainerViewModel,
1232+
containerSavedSuccess: Boolean = false,
12311233
) {
12321234
sharedContainerViewModel.resetExternalFileUris()
12331235
sharedContainerViewModel.resetIsSivaConfirmed()
@@ -1247,6 +1249,12 @@ private fun handleBackButtonClick(
12471249
} else {
12481250
sharedContainerViewModel.clearContainers()
12491251
encryptViewModel.handleBackButton()
1252+
1253+
if (containerSavedSuccess) {
1254+
navController.previousBackStackEntry
1255+
?.savedStateHandle
1256+
?.set("snackbar_message", R.string.crypto_saved_container_success)
1257+
}
12501258
navController.navigateUp()
12511259
}
12521260
}

app/src/main/kotlin/ee/ria/DigiDoc/ui/component/signing/SigningNavigation.kt

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ fun SigningNavigation(
455455
} ?: run {
456456
signedContainer?.getContainerFile()?.let {
457457
sharedContainerViewModel.saveContainerFile(it, result)
458-
showMessage(context, R.string.file_saved)
458+
showMessage(context, R.string.signature_saved_container_success)
459459
isSaved = true
460460
} ?: showMessage(context, R.string.file_saved_error)
461461
}
@@ -646,6 +646,7 @@ fun SigningNavigation(
646646
navController,
647647
signingViewModel,
648648
sharedContainerViewModel,
649+
true,
649650
)
650651
}
651652
@Suppress("AssignedValueIsNeverRead")
@@ -1360,6 +1361,7 @@ private fun handleBackButtonClick(
13601361
navController: NavHostController,
13611362
signingViewModel: SigningViewModel,
13621363
sharedContainerViewModel: SharedContainerViewModel,
1364+
containerSavedSuccess: Boolean = false,
13631365
) {
13641366
sharedContainerViewModel.resetExternalFileUris()
13651367
sharedContainerViewModel.resetIsSivaConfirmed()
@@ -1379,6 +1381,12 @@ private fun handleBackButtonClick(
13791381
} else {
13801382
sharedContainerViewModel.clearContainers()
13811383
signingViewModel.handleBackButton()
1384+
1385+
if (containerSavedSuccess) {
1386+
navController.previousBackStackEntry
1387+
?.savedStateHandle
1388+
?.set("snackbar_message", R.string.signature_saved_container_success)
1389+
}
13821390
navController.navigateUp()
13831391
}
13841392
}

app/src/main/kotlin/ee/ria/DigiDoc/utils/snackbar/SnackBarManager.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ object SnackBarManager {
3535

3636
fun showMessage(message: String) {
3737
CoroutineScope(Main).launch {
38-
_messages.value = _messages.value + message
38+
_messages.value += message
3939
}
4040
}
4141

@@ -44,7 +44,7 @@ object SnackBarManager {
4444
@StringRes message: Int,
4545
) {
4646
CoroutineScope(Main).launch {
47-
_messages.value = _messages.value + context.getString(message)
47+
_messages.value += context.getString(message)
4848
}
4949
}
5050

app/src/main/res/values-et/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@
173173
<string name="crypto_decrypt_title">Ümbriku dekrüpteerimine</string>
174174
<string name="crypto_decrypt_method">Dekrüpteerimise meetod</string>
175175

176+
<string name="crypto_saved_container_success">Krüptokonteineri salvestamine õnnestus</string>
177+
176178
<!-- Signature Add -->
177179
<string name="signature_update_title">Ümbriku allkirjastamine</string>
178180
<string name="signature_update_name_update_name">Ümbriku nimi</string>
@@ -190,6 +192,8 @@
190192
<string name="signature_update_signature_add_success">Allkiri lisatud</string>
191193
<string name="signature_update_signature_add">Lisa allkiri</string>
192194

195+
<string name="signature_saved_container_success">Allkirjastatud konteineri salvestamine õnnestus</string>
196+
193197
<string name="signature_update_signature_selected_method_mobile_id">Allkirjastamise viisiks on mobiil-ID, vahekaart %1$d / %2$d</string>
194198
<string name="signature_update_signature_selected_method_smart_id">Allkirjastamise viisiks on Smart-ID, vahekaart %1$d / %2$d</string>
195199
<string name="signature_update_signature_selected_method_id_card">Allkirjastamise viisiks on ID-kaart, vahekaart %1$d / %2$d</string>

app/src/main/res/values/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@
173173
<string name="crypto_decrypt_title">Container decryption</string>
174174
<string name="crypto_decrypt_method">Decryption method</string>
175175

176+
<string name="crypto_saved_container_success">Successfully saved crypto container</string>
177+
176178
<!-- Signature Add -->
177179
<string name="signature_update_title">Container signing</string>
178180
<string name="signature_update_name_update_name">Container name</string>
@@ -190,6 +192,8 @@
190192
<string name="signature_update_signature_add_success">Signature added</string>
191193
<string name="signature_update_signature_add">Add signature</string>
192194

195+
<string name="signature_saved_container_success">Successfully saved signed container</string>
196+
193197
<string name="signature_update_signature_selected_method_mobile_id">Signing option Mobile-ID, tab %1$d of %2$d</string>
194198
<string name="signature_update_signature_selected_method_smart_id">Signing option Smart-ID, tab %1$d of %2$d</string>
195199
<string name="signature_update_signature_selected_method_id_card">Signing option ID-card, tab %1$d of %2$d</string>

0 commit comments

Comments
 (0)