Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
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 @@ -51,7 +51,6 @@ 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
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
Expand Down Expand Up @@ -105,18 +104,9 @@ fun AdvancedSettingsScreen(

val isSettingsMenuBottomSheetVisible = rememberSaveable { mutableStateOf(false) }

val getIsRoleAskingEnabled = sharedSettingsViewModel.dataStore::getSettingsAskRoleAndAddress
val setIsRoleAskingEnabled = sharedSettingsViewModel.dataStore::setSettingsAskRoleAndAddress

val getAllowScreenshotsEnabled = sharedSettingsViewModel.dataStore::getSettingsAllowScreenshots
val setAllowScreenshotsEnabled = sharedSettingsViewModel.dataStore::setSettingsAllowScreenshots

val getOpenAllFileTypesEnabled = sharedSettingsViewModel.dataStore::getSettingsOpenAllFileTypes
val setOpenAllFileTypesEnabled = sharedSettingsViewModel.dataStore::setSettingsOpenAllFileTypes

var checkedAskRoleAndAddress by remember { mutableStateOf(getIsRoleAskingEnabled()) }
var checkedAllowScreenshots by remember { mutableStateOf(getAllowScreenshotsEnabled()) }
var checkedAllowOpeningAllFileTypes by remember { mutableStateOf(getOpenAllFileTypesEnabled()) }
val checkedAskRoleAndAddress by sharedSettingsViewModel.enableRoleAsking.collectAsState()
val checkedAllowScreenshots by sharedSettingsViewModel.allowScreenshots.collectAsState()
val checkedAllowOpeningAllFileTypes by sharedSettingsViewModel.enableOpenAllFileTypes.collectAsState()

val askRoleAndAddressTitleText = stringResource(R.string.main_settings_ask_role_and_address_title)
val allowScreenshotsTitleText = stringResource(R.string.main_settings_allow_screenshots_title)
Expand Down Expand Up @@ -191,8 +181,7 @@ fun AdvancedSettingsScreen(
modifier
.fillMaxWidth()
.clickable {
checkedAskRoleAndAddress = !checkedAskRoleAndAddress
setIsRoleAskingEnabled(checkedAskRoleAndAddress)
sharedSettingsViewModel.setSettingsAskRoleAndAddress(checkedAskRoleAndAddress)
},
verticalAlignment = Alignment.CenterVertically,
) {
Expand All @@ -213,8 +202,7 @@ fun AdvancedSettingsScreen(
},
checked = checkedAskRoleAndAddress,
onCheckedChange = {
checkedAskRoleAndAddress = it
setIsRoleAskingEnabled(it)
sharedSettingsViewModel.setSettingsAskRoleAndAddress(it)
},
)
}
Expand All @@ -224,8 +212,7 @@ fun AdvancedSettingsScreen(
modifier
.fillMaxWidth()
.clickable {
checkedAllowScreenshots = !checkedAllowScreenshots
setAllowScreenshotsEnabled(checkedAllowScreenshots)
sharedSettingsViewModel.setAllowScreenshots(checkedAllowScreenshots)
secureUtil.markAsSecure(activity)
},
verticalAlignment = Alignment.CenterVertically,
Expand All @@ -247,8 +234,7 @@ fun AdvancedSettingsScreen(
},
checked = checkedAllowScreenshots,
onCheckedChange = {
checkedAllowScreenshots = it
setAllowScreenshotsEnabled(it)
sharedSettingsViewModel.setAllowScreenshots(it)
secureUtil.markAsSecure(activity)
},
)
Expand All @@ -259,8 +245,7 @@ fun AdvancedSettingsScreen(
modifier
.fillMaxWidth()
.clickable {
checkedAllowOpeningAllFileTypes = !checkedAllowOpeningAllFileTypes
setOpenAllFileTypesEnabled(checkedAllowOpeningAllFileTypes)
sharedSettingsViewModel.setSettingsOpenAllFileTypes(checkedAllowOpeningAllFileTypes)
sharedSettingsViewModel.recreateActivity()
},
verticalAlignment = Alignment.CenterVertically,
Expand All @@ -282,8 +267,7 @@ fun AdvancedSettingsScreen(
},
checked = checkedAllowOpeningAllFileTypes,
onCheckedChange = {
checkedAllowOpeningAllFileTypes = it
setOpenAllFileTypesEnabled(it)
sharedSettingsViewModel.setSettingsOpenAllFileTypes(it)
sharedSettingsViewModel.recreateActivity()
},
)
Expand Down Expand Up @@ -325,10 +309,12 @@ fun AdvancedSettingsScreen(
verticalAlignment = Alignment.CenterVertically,
) {
TextButton(onClick = {
checkedAskRoleAndAddress = false
checkedAllowScreenshots = false
checkedAllowOpeningAllFileTypes = true
sharedSettingsViewModel.setSettingsAskRoleAndAddress(false)
sharedSettingsViewModel.setAllowScreenshots(false)
sharedSettingsViewModel.setSettingsOpenAllFileTypes(true)
sharedSettingsViewModel.resetToDefaultSettings()
secureUtil.markAsSecure(activity)
sharedSettingsViewModel.recreateActivity()
showMessage(context, R.string.main_settings_use_default_settings_message)
}) {
Text(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ import ee.ria.DigiDoc.utilsLib.signing.CertificateUtil
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers.IO
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch
import okhttp3.OkHttpClient
import okhttp3.Request
Expand Down Expand Up @@ -126,6 +128,15 @@ class SharedSettingsViewModel
private val _errorState = MutableLiveData<Int?>(null)
val errorState: LiveData<Int?> = _errorState

private val _allowScreenshots = MutableStateFlow(dataStore.getSettingsAllowScreenshots())
val allowScreenshots = _allowScreenshots.asStateFlow()

private val _enableRoleAsking = MutableStateFlow(dataStore.getSettingsAskRoleAndAddress())
val enableRoleAsking = _enableRoleAsking.asStateFlow()

private val _enableOpenAllFileTypes = MutableStateFlow(dataStore.getSettingsOpenAllFileTypes())
val enableOpenAllFileTypes = _enableOpenAllFileTypes.asStateFlow()

init {
CoroutineScope(Main).launch {
configurationRepository.observeConfigurationUpdates { newConfig ->
Expand All @@ -134,6 +145,21 @@ class SharedSettingsViewModel
}
}

fun setSettingsAskRoleAndAddress(value: Boolean) {
dataStore.setSettingsAskRoleAndAddress(value)
_enableRoleAsking.value = value
}

fun setAllowScreenshots(value: Boolean) {
dataStore.setSettingsAllowScreenshots(value)
_allowScreenshots.value = value
}

fun setSettingsOpenAllFileTypes(value: Boolean) {
dataStore.setSettingsOpenAllFileTypes(value)
_enableOpenAllFileTypes.value = value
}

fun resetToDefaultSettings() {
resetSigningSettings()
resetRightsSettings()
Expand Down Expand Up @@ -188,16 +214,16 @@ class SharedSettingsViewModel
}

private fun resetRightsSettings() {
dataStore.setSettingsOpenAllFileTypes(true)
dataStore.setSettingsAllowScreenshots(false)
setSettingsOpenAllFileTypes(true)
setAllowScreenshots(false)
}

private fun resetSigningSettings() {
dataStore.setUuidSetting(UUIDSetting.DEFAULT)
dataStore.setTsaSetting(TSASetting.DEFAULT)
dataStore.setSettingsUUID(DEFAULT_UUID_VALUE)
dataStore.setSettingsTSAUrl(updatedConfiguration.value?.tsaUrl ?: "")
dataStore.setSettingsAskRoleAndAddress(false)
setSettingsAskRoleAndAddress(false)
dataStore.setIsTsaCertificateViewVisible(false)
val certFile =
FileUtil.getCertFile(context, dataStore.getTSACertName(), DIR_TSA_CERT)
Expand Down
Loading