Skip to content
Merged
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 @@ -309,6 +309,32 @@ class DataStoreTest {
assertEquals(false, result)
}

@Test
fun dataStore_getSettingsDefaultLTA_returnFalseByDefault() {
val result = dataStore.getSettingsDefaultLTA()

assertFalse(result)
}

@Test
fun dataStore_setSettingsDefaultLTA_returnTrueWhenEnabled() {
dataStore.setSettingsDefaultLTA(true)

val result = dataStore.getSettingsDefaultLTA()

assertTrue(result)
}

@Test
fun dataStore_setSettingsDefaultLTA_returnFalseWhenDisabled() {
dataStore.setSettingsDefaultLTA(true)
dataStore.setSettingsDefaultLTA(false)

val result = dataStore.getSettingsDefaultLTA()

assertFalse(result)
}

@Test
fun dataStore_getSettingsAllowScreenshots_success() {
val result = dataStore.getSettingsAllowScreenshots()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,14 @@ import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.atLeastOnce
import org.mockito.Mockito.mock
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import org.mockito.junit.MockitoJUnitRunner
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.atLeastOnce
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import java.io.File
Expand Down Expand Up @@ -545,6 +545,13 @@ class SigningViewModelTest {
assertFalse(isContainerWithTimestamps)
}

@Test
fun signingViewModel_isContainerWithTimestamps_returnFalseWhenContainerIsNull() {
val isContainerWithTimestamps = viewModel.isContainerWithTimestamps(null)

assertFalse(isContainerWithTimestamps)
}

@Test
fun signingViewModel_getMimetype_success() =
runTest {
Expand Down Expand Up @@ -596,4 +603,49 @@ class SigningViewModelTest {

assertEquals("text/plain", mimetype)
}

@Test
fun signingViewModel_isExtendSignaturesButtonShown_returnTrueWithSignedContainerNotNested() =
runTest {
val file = getResourceFileAsFile(context, "example.asice", R.raw.example)
val container = SignedContainer.openOrCreate(context, file, listOf(file), true)

val isExtendSignaturesButtonShown = viewModel.isExtendSignaturesButtonShown(container, false)

assertTrue(isExtendSignaturesButtonShown)
}

@Test
fun signingViewModel_isExtendSignaturesButtonShown_returnFalseWhenContainerIsNull() {
val isExtendSignaturesButtonShown = viewModel.isExtendSignaturesButtonShown(null, false)

assertFalse(isExtendSignaturesButtonShown)
}

@Test
fun signingViewModel_isExtendSignaturesButtonShown_returnFalseWhenContainerIsUnsigned() =
runTest {
val file =
getResourceFileAsFile(
context,
"example_no_signatures.asice",
R.raw.example_no_signatures,
)
val container = SignedContainer.openOrCreate(context, file, listOf(file), true)

val isExtendSignaturesButtonShown = viewModel.isExtendSignaturesButtonShown(container, false)

assertFalse(isExtendSignaturesButtonShown)
}

@Test
fun signingViewModel_isExtendSignaturesButtonShown_returnFalseWhenContainerIsNested() =
runTest {
val file = getResourceFileAsFile(context, "example.asice", R.raw.example)
val container = SignedContainer.openOrCreate(context, file, listOf(file), true)

val isExtendSignaturesButtonShown = viewModel.isExtendSignaturesButtonShown(container, true)

assertFalse(isExtendSignaturesButtonShown)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -176,6 +176,7 @@ class SharedSettingsViewModelTest {
assertEquals(DEFAULT_UUID_VALUE, dataStore.getSettingsUUID())
assertEquals("", dataStore.getSettingsTSAUrl())
assertFalse(dataStore.getSettingsAskRoleAndAddress())
assertFalse(dataStore.getSettingsDefaultLTA())
assertFalse(dataStore.getIsTsaCertificateViewVisible())

assertEquals("", dataStore.getTSACertName())
Expand All @@ -197,6 +198,15 @@ class SharedSettingsViewModelTest {
assertEquals("", dataStore.getProxyPassword())
}

@Test
fun sharedSettingsViewModel_resetToDefaultSettings_resetsDefaultLTAToFalse() {
dataStore.setSettingsDefaultLTA(true)

viewModel.resetToDefaultSettings()

assertFalse(dataStore.getSettingsDefaultLTA())
}

@Test
fun sharedSettingsViewModel_saveProxySettings_savesManualProxySettings() {
dataStore.setProxySetting(ProxySetting.MANUAL_PROXY)
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/kotlin/ee/ria/DigiDoc/domain/preferences/DataStore.kt
Original file line number Diff line number Diff line change
Expand Up @@ -497,6 +497,21 @@ class DataStore
}
}

fun getSettingsDefaultLTA(): Boolean =
preferences.getBoolean(
resources.getString(R.string.main_settings_default_lta_key),
false,
)

fun setSettingsDefaultLTA(isEnabled: Boolean) {
preferences.edit {
putBoolean(
resources.getString(R.string.main_settings_default_lta_key),
isEnabled,
)
}
}

fun getRoles(): String =
preferences.getString(
resources.getString(R.string.main_settings_role_key),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ 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 Down Expand Up @@ -104,7 +105,6 @@ import ee.ria.DigiDoc.viewmodel.EncryptionServicesViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedCertificateViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedMenuViewModel
import ee.ria.DigiDoc.viewmodel.shared.SharedSettingsViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Dispatchers.Main
import kotlinx.coroutines.launch
Expand All @@ -126,6 +126,7 @@ fun EncryptionServicesSettingsScreen(
navController: NavHostController,
) {
val context = LocalContext.current
val scope = rememberCoroutineScope()

val isSettingsMenuBottomSheetVisible = rememberSaveable { mutableStateOf(false) }

Expand Down Expand Up @@ -265,7 +266,7 @@ fun EncryptionServicesSettingsScreen(
navController.popBackStack()
return@rememberLauncherForActivityResult
}
CoroutineScope(Dispatchers.IO).launch {
scope.launch(Dispatchers.IO) {
sharedSettingsViewModel.handleCryptoCertFile(uri)
withContext(Main) {
sharedSettingsViewModel.updateCryptoCertData(context)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,17 @@ fun ProxyServicesSettingsScreen(

val isValidPortNumber = sharedSettingsViewModel.dataStore::isValidPortNumber

val saveManualProxySettings = {
sharedSettingsViewModel.saveProxySettings(
ManualProxy(
host = proxyHost.text,
port = proxyPort.text.toIntOrNull() ?: 80,
username = proxyUsername.text,
password = proxyPassword.text,
),
)
}

val proxyPortErrorText =
if (proxyPort.text.isNotEmpty()) {
if (!isValidPortNumber(proxyPort.text)) {
Expand Down Expand Up @@ -401,6 +412,7 @@ fun ProxyServicesSettingsScreen(
onValueChange = {
proxyHost = it
setProxyHost(it.text)
saveManualProxySettings()
},
singleLine = true,
label = stringResource(R.string.main_settings_proxy_host),
Expand Down Expand Up @@ -428,6 +440,7 @@ fun ProxyServicesSettingsScreen(
if (isValidPortNumber(it.text)) {
setProxyPort(it.text.toInt())
}
saveManualProxySettings()
},
singleLine = true,
label = stringResource(R.string.main_settings_proxy_port),
Expand Down Expand Up @@ -455,6 +468,7 @@ fun ProxyServicesSettingsScreen(
onValueChange = {
proxyUsername = it
setProxyUsername(it.text)
saveManualProxySettings()
},
singleLine = true,
label = stringResource(R.string.main_settings_proxy_username),
Expand All @@ -480,6 +494,7 @@ fun ProxyServicesSettingsScreen(
onValueChange = {
proxyPassword = it
setProxyPassword(it.text)
saveManualProxySettings()
},
singleLine = true,
label = stringResource(R.string.main_settings_proxy_password),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import ee.ria.DigiDoc.R
import ee.ria.DigiDoc.ui.component.menu.SettingsMenuBottomSheet
import ee.ria.DigiDoc.ui.component.settings.advanced.signingservices.LTAComponent
import ee.ria.DigiDoc.ui.component.settings.advanced.signingservices.MobileIdAndSmartIdServicesComponent
import ee.ria.DigiDoc.ui.component.settings.advanced.signingservices.TimestampServicesComponent
import ee.ria.DigiDoc.ui.component.shared.InvisibleElement
Expand Down Expand Up @@ -130,6 +131,14 @@ fun SigningServicesSettingsScreen(
sharedSettingsViewModel = sharedSettingsViewModel,
)
},
TabItem(
stringResource(R.string.main_settings_default_lta_tab_title),
) {
LTAComponent(
modifier,
sharedSettingsViewModel = sharedSettingsViewModel,
)
},
),
)

Expand Down
Loading
Loading