diff --git a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt index b42888e..830d550 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/components/SettingsScreen/atoms/ImportExport.kt @@ -14,6 +14,9 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon +import androidx.compose.material3.SnackbarDuration +import androidx.compose.material3.SnackbarHostState +import androidx.compose.material3.SnackbarVisuals import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState @@ -35,7 +38,9 @@ import kotlinx.coroutines.launch import java.io.File @Composable -fun ImportExport() { +fun ImportExport( + snackbarHostState: SnackbarHostState, +) { val context = LocalContext.current val scope = rememberCoroutineScope() @@ -60,6 +65,8 @@ fun ImportExport() { } if (settingsToBeImported != null) { + val successMessage = stringResource(R.string.ui_settings_option_import_success) + AlertDialog( onDismissRequest = { settingsToBeImported = null @@ -84,7 +91,14 @@ fun ImportExport() { settingsToBeImported!! } settingsToBeImported = null + + snackbarHostState.showSnackbar( + message = successMessage, + withDismissAction = true, + duration = SnackbarDuration.Short, + ) } + }, ) { Icon( diff --git a/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt b/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt index 793a601..420c117 100644 --- a/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt +++ b/app/src/main/java/app/myzel394/alibi/ui/screens/SettingsScreen.kt @@ -16,7 +16,9 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LargeTopAppBar +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold +import androidx.compose.material3.Snackbar import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.Text @@ -65,7 +67,21 @@ fun SettingsScreen( ) Scaffold( - snackbarHost = { SnackbarHost(hostState = snackbarHostState) }, + snackbarHost = { + SnackbarHost( + hostState = snackbarHostState, + snackbar = { + Snackbar( + snackbarData = it, + containerColor = MaterialTheme.colorScheme.primaryContainer, + contentColor = MaterialTheme.colorScheme.onPrimaryContainer, + actionColor = MaterialTheme.colorScheme.onPrimaryContainer, + actionContentColor = MaterialTheme.colorScheme.onPrimaryContainer, + dismissActionContentColor = MaterialTheme.colorScheme.onPrimaryContainer, + ) + } + ) + }, topBar = { LargeTopAppBar( title = { @@ -149,7 +165,7 @@ fun SettingsScreen( modifier = Modifier .fillMaxWidth(0.5f) ) - ImportExport() + ImportExport(snackbarHostState = snackbarHostState) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e67d141..baa7240 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -67,4 +67,5 @@ Export Settings Are you sure you want to import these settings? Your current settings will be overwritten! Import settings + Settings have been imported successfully! \ No newline at end of file