Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,10 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
Expand All @@ -63,14 +56,13 @@ import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet
import ee.ria.DigiDoc.ui.component.shared.DynamicText
import ee.ria.DigiDoc.ui.component.shared.HrefDynamicText
import ee.ria.DigiDoc.ui.component.shared.InvisibleElement
import ee.ria.DigiDoc.ui.component.shared.StatusSnackbarHost
import ee.ria.DigiDoc.ui.component.shared.TopBar
import ee.ria.DigiDoc.ui.theme.Dimensions.LINE_HEIGHT
import ee.ria.DigiDoc.ui.theme.Dimensions.MPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
import kotlinx.coroutines.launch

@OptIn(ExperimentalComposeUiApi::class)
@Composable
Expand All @@ -79,34 +71,15 @@ fun AccessibilityScreen(
navController: NavHostController,
sharedMenuViewModel: SharedMenuViewModel,
) {
val snackBarHostState = remember { SnackbarHostState() }
val snackBarScope = rememberCoroutineScope()

val messages by SnackBarManager.messages.collectAsState(emptyList())

val isSettingsMenuBottomSheetVisible = rememberSaveable { mutableStateOf(false) }

LaunchedEffect(messages) {
messages.forEach { message ->
snackBarScope.launch {
snackBarHostState.showSnackbar(message)
}
SnackBarManager.removeMessage(message)
}
}

Scaffold(
snackbarHost = {
SnackbarHost(
modifier = modifier.padding(vertical = SPadding),
hostState = snackBarHostState,
)
},
modifier =
modifier
.semantics {
testTagsAsResourceId = true
}.testTag("accessibilityScreen"),
snackbarHost = { StatusSnackbarHost() },
topBar = {
TopBar(
modifier = modifier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,12 @@ import androidx.compose.material3.Checkbox
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
Expand All @@ -73,18 +68,18 @@ import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet
import ee.ria.DigiDoc.ui.component.settings.advanced.AdvancedSettingComponent
import ee.ria.DigiDoc.ui.component.settings.advanced.AdvancedSettingComponentItem
import ee.ria.DigiDoc.ui.component.shared.InvisibleElement
import ee.ria.DigiDoc.ui.component.shared.StatusSnackbarHost
import ee.ria.DigiDoc.ui.component.shared.TopBar
import ee.ria.DigiDoc.ui.theme.Dimensions.MPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.utils.extensions.notAccessible
import ee.ria.DigiDoc.utils.secure.SecureUtil
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager.showMessage
import ee.ria.DigiDoc.utils.snackbar.SnackbarType
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel
import kotlinx.coroutines.launch

@OptIn(ExperimentalComposeUiApi::class)
@Composable
Expand All @@ -98,11 +93,6 @@ fun AdvancedSettingsScreen(
val context = LocalContext.current
val activity = LocalActivity.current

val snackBarHostState = remember { SnackbarHostState() }
val snackBarScope = rememberCoroutineScope()

val messages by SnackBarManager.messages.collectAsState(emptyList())

val isSettingsMenuBottomSheetVisible = rememberSaveable { mutableStateOf(false) }

val getIsRoleAskingEnabled = sharedSettingsViewModel.dataStore::getSettingsAskRoleAndAddress
Expand All @@ -124,27 +114,13 @@ fun AdvancedSettingsScreen(
val allowOpeningAllFileTypesButtonText = stringResource(R.string.main_settings_open_all_filetypes_title)
val buttonName = stringResource(id = R.string.button_name)

LaunchedEffect(messages) {
messages.forEach { message ->
snackBarScope.launch {
snackBarHostState.showSnackbar(message)
}
SnackBarManager.removeMessage(message)
}
}

Scaffold(
snackbarHost = {
SnackbarHost(
modifier = modifier.padding(vertical = SPadding),
hostState = snackBarHostState,
)
},
modifier =
modifier
.semantics {
testTagsAsResourceId = true
}.testTag("advancedSettingsScreen"),
snackbarHost = { StatusSnackbarHost() },
topBar = {
TopBar(
modifier = modifier,
Expand Down Expand Up @@ -329,7 +305,7 @@ fun AdvancedSettingsScreen(
checkedAllowScreenshots = false
checkedAllowOpeningAllFileTypes = true
sharedSettingsViewModel.resetToDefaultSettings()
showMessage(context, R.string.main_settings_use_default_settings_message)
showMessage(context, R.string.main_settings_use_default_settings_message, SnackbarType.SUCCESS)
}) {
Text(
modifier =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,11 @@ import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
Expand All @@ -67,18 +62,17 @@ import ee.ria.DigiDoc.domain.model.IdentityAction
import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet
import ee.ria.DigiDoc.ui.component.settings.SettingsSwitchItem
import ee.ria.DigiDoc.ui.component.shared.InvisibleElement
import ee.ria.DigiDoc.ui.component.shared.StatusSnackbarHost
import ee.ria.DigiDoc.ui.component.shared.TopBar
import ee.ria.DigiDoc.ui.component.signing.NFCView
import ee.ria.DigiDoc.ui.theme.Dimensions.MSPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.utils.extensions.notAccessible
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
import ee.ria.DigiDoc.viewmodel.shared.SharedContainerViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel
import kotlinx.coroutines.launch

@Composable
fun DecryptScreen(
Expand All @@ -97,31 +91,12 @@ fun DecryptScreen(
var cancelDecryptAction by remember { mutableStateOf<() -> Unit>({}) }
var nfcSupported by remember { mutableStateOf(false) }

val snackBarHostState = remember { SnackbarHostState() }
val snackBarScope = rememberCoroutineScope()

val messages by SnackBarManager.messages.collectAsState(emptyList())

val identificationMethodText = stringResource(R.string.crypto_decrypt_method)
val chosenMethodNameText = stringResource(R.string.signature_update_signature_add_method_nfc)
val rememberMeText = stringResource(R.string.signature_update_remember_me)

LaunchedEffect(messages) {
messages.forEach { message ->
snackBarScope.launch {
snackBarHostState.showSnackbar(message)
}
SnackBarManager.removeMessage(message)
}
}

Scaffold(
snackbarHost = {
SnackbarHost(
modifier = modifier.padding(vertical = SPadding),
hostState = snackBarHostState,
)
},
snackbarHost = { StatusSnackbarHost() },
topBar = {
TopBar(
modifier = modifier,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,13 @@ import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
Expand All @@ -79,15 +75,16 @@ import ee.ria.DigiDoc.ui.component.shared.HrefMessageDialog
import ee.ria.DigiDoc.ui.component.shared.InvisibleElement
import ee.ria.DigiDoc.ui.component.shared.PrimaryOutlinedButton
import ee.ria.DigiDoc.ui.component.shared.SpannableBoldText
import ee.ria.DigiDoc.ui.component.shared.StatusSnackbarHost
import ee.ria.DigiDoc.ui.component.shared.TopBar
import ee.ria.DigiDoc.ui.theme.Dimensions.SPadding
import ee.ria.DigiDoc.ui.theme.Dimensions.XSPadding
import ee.ria.DigiDoc.ui.theme.RIADigiDocTheme
import ee.ria.DigiDoc.ui.theme.buttonRoundCornerShape
import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.getAccessibilityEventType
import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.sendAccessibilityEvent
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager
import ee.ria.DigiDoc.utils.snackbar.SnackBarManager.showMessage
import ee.ria.DigiDoc.utils.snackbar.SnackbarType
import ee.ria.DigiDoc.utilsLib.file.FileUtil.sanitizeString
import ee.ria.DigiDoc.viewmodel.DiagnosticsViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
Expand All @@ -110,11 +107,6 @@ fun DiagnosticsScreen(
) {
val context = LocalContext.current

val snackBarHostState = remember { SnackbarHostState() }
val snackBarScope = rememberCoroutineScope()

val messages by SnackBarManager.messages.collectAsState(emptyList())

val isSettingsMenuBottomSheetVisible = rememberSaveable { mutableStateOf(false) }
val currentConfiguration by
diagnosticsViewModel.updatedConfiguration.asFlow().collectAsState(
Expand Down Expand Up @@ -143,7 +135,7 @@ fun DiagnosticsScreen(
actionFile?.let { file ->
diagnosticsViewModel.saveFile(file, result)
}
showMessage(context, R.string.file_saved)
showMessage(context, R.string.file_saved, SnackbarType.SUCCESS)
}
}

Expand All @@ -153,7 +145,7 @@ fun DiagnosticsScreen(
actionFile?.let { file ->
diagnosticsViewModel.saveFile(file, result)
}
showMessage(context, R.string.file_saved)
showMessage(context, R.string.file_saved, SnackbarType.SUCCESS)
enableOneTimeLogGeneration = false
diagnosticsViewModel.dataStore.setIsLogFileGenerationEnabled(false)
diagnosticsViewModel.dataStore.setIsLogFileGenerationRunning(false)
Expand All @@ -163,27 +155,13 @@ fun DiagnosticsScreen(
}
}

LaunchedEffect(messages) {
messages.forEach { message ->
snackBarScope.launch {
snackBarHostState.showSnackbar(message)
}
SnackBarManager.removeMessage(message)
}
}

Scaffold(
snackbarHost = {
SnackbarHost(
modifier = modifier.padding(vertical = SPadding),
hostState = snackBarHostState,
)
},
modifier =
modifier
.semantics {
testTagsAsResourceId = true
}.testTag("diagnosticsScreen"),
snackbarHost = { StatusSnackbarHost() },
topBar = {
TopBar(
modifier = modifier,
Expand Down
Loading
Loading