diff --git a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt index 1fb11662..7e3791e8 100644 --- a/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt +++ b/app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt @@ -179,6 +179,8 @@ class DiagnosticsViewModelTest { ) proxySetting = ProxySetting.NO_PROXY manualProxy = ManualProxy("", 80, "", "") + dataStore.setProxySetting(ProxySetting.NO_PROXY) + dataStore.setProxyUsername("") } @Test @@ -426,6 +428,51 @@ class DiagnosticsViewModelTest { assertEquals(DEFAULT_UUID_VALUE, cdoc2KeyServerUUID) } + @Test + fun diagnosticsViewModel_getProxyConfig_returnsNoneForNoProxy() { + dataStore.setProxySetting(ProxySetting.NO_PROXY) + + val result = viewModel.getProxyConfig() + + assertEquals("NONE", result) + } + + @Test + fun diagnosticsViewModel_getProxyConfig_returnsSystemForSystemProxy() { + dataStore.setProxySetting(ProxySetting.SYSTEM_PROXY) + + val result = viewModel.getProxyConfig() + + assertEquals("SYSTEM", result) + } + + @Test + fun diagnosticsViewModel_getProxyConfig_returnsManualForManualProxy() { + dataStore.setProxySetting(ProxySetting.MANUAL_PROXY) + + val result = viewModel.getProxyConfig() + + assertEquals("MANUAL", result) + } + + @Test + fun diagnosticsViewModel_isProxyAuthEnabled_returnTrueWhenUsernameSet() { + dataStore.setProxyUsername("username") + + val result = viewModel.isProxyAuthEnabled() + + assertTrue(result) + } + + @Test + fun diagnosticsViewModel_isProxyAuthEnabled_returnFalseWhenUsernameEmpty() { + dataStore.setProxyUsername("") + + val result = viewModel.isProxyAuthEnabled() + + assertFalse(result) + } + @Suppress("SameParameterValue") private fun createTempFileWithStringContent( filename: String, diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt index 80fbf0b2..62ce2b73 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt @@ -538,6 +538,29 @@ fun DiagnosticsScreen( stringResource(id = R.string.main_diagnostics_cdoc2_default_keyserver_title), diagnosticsViewModel.getCdoc2KeyServerUUID(currentConfiguration), ) + SpannableBoldText( + modifier = modifier, + stringResource(id = R.string.main_diagnostics_settings_title), + "", + ) + DiagnosticsText( + modifier = + modifier + .semantics { + testTagsAsResourceId = true + }.testTag("mainDiagnosticsProxyConfig"), + stringResource(id = R.string.main_diagnostics_proxy_config_title), + diagnosticsViewModel.getProxyConfig(), + ) + DiagnosticsText( + modifier = + modifier + .semantics { + testTagsAsResourceId = true + }.testTag("mainDiagnosticsProxyAuth"), + stringResource(id = R.string.main_diagnostics_proxy_auth_title), + diagnosticsViewModel.isProxyAuthEnabled().toString(), + ) HorizontalDivider( modifier = modifier diff --git a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt index c04ae8f4..d9b4ee99 100644 --- a/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt +++ b/app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt @@ -40,6 +40,7 @@ import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository import ee.ria.DigiDoc.configuration.utils.TSLUtil import ee.ria.DigiDoc.domain.model.settings.CDOCSetting import ee.ria.DigiDoc.domain.preferences.DataStore +import ee.ria.DigiDoc.network.proxy.ProxySetting import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.getAccessibilityEventType import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.sendAccessibilityEvent import ee.ria.DigiDoc.utilsLib.date.DateUtil @@ -163,6 +164,15 @@ class DiagnosticsViewModel return dataStore.getCDOC2UUID(defaultKeyServer) } + fun getProxyConfig(): String = + when (dataStore.getProxySetting()) { + ProxySetting.NO_PROXY -> "NONE" + ProxySetting.SYSTEM_PROXY -> "SYSTEM" + ProxySetting.MANUAL_PROXY -> "MANUAL" + } + + fun isProxyAuthEnabled(): Boolean = dataStore.getProxyUsername().isNotEmpty() + fun getTslCacheData(context: Context): List { val tslCacheList = ArrayList() val tslCacheDir = File(context.cacheDir.absolutePath + "/schema") @@ -390,6 +400,24 @@ class DiagnosticsViewModel } ${getCdoc2KeyServerUUID(currentConfiguration)}", ) + // Settings + appendLine() + appendLine(context.getString(R.string.main_diagnostics_settings_title)) + appendLine( + "${ + context.getString( + R.string.main_diagnostics_proxy_config_title, + ) + } ${getProxyConfig()}", + ) + appendLine( + "${ + context.getString( + R.string.main_diagnostics_proxy_auth_title, + ) + } ${isProxyAuthEnabled()}", + ) + // Category appendLine() appendLine(context.getString(R.string.main_diagnostics_tsl_cache_title)) diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 6007af78..49c7d00b 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -99,6 +99,9 @@ CDOC2-DEFAULT:\u0020 CDOC2-USE-KEYSERVER:\u0020 CDOC2-DEFAULT-KEYSERVER:\u0020 + Settings: + Proxy config:\u0020 + Proxy auth:\u0020 DATE:\u0020 SERIAL:\u0020