Skip to content

Commit d75d14b

Browse files
committed
Add proxy info to diagnostics view
1 parent 107f017 commit d75d14b

4 files changed

Lines changed: 101 additions & 0 deletions

File tree

app/src/androidTest/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModelTest.kt

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ class DiagnosticsViewModelTest {
179179
)
180180
proxySetting = ProxySetting.NO_PROXY
181181
manualProxy = ManualProxy("", 80, "", "")
182+
dataStore.setProxySetting(ProxySetting.NO_PROXY)
183+
dataStore.setProxyUsername("")
182184
}
183185

184186
@Test
@@ -426,6 +428,51 @@ class DiagnosticsViewModelTest {
426428
assertEquals(DEFAULT_UUID_VALUE, cdoc2KeyServerUUID)
427429
}
428430

431+
@Test
432+
fun diagnosticsViewModel_getProxyConfig_returnsNoneForNoProxy() {
433+
dataStore.setProxySetting(ProxySetting.NO_PROXY)
434+
435+
val result = viewModel.getProxyConfig()
436+
437+
assertEquals("NONE", result)
438+
}
439+
440+
@Test
441+
fun diagnosticsViewModel_getProxyConfig_returnsSystemForSystemProxy() {
442+
dataStore.setProxySetting(ProxySetting.SYSTEM_PROXY)
443+
444+
val result = viewModel.getProxyConfig()
445+
446+
assertEquals("SYSTEM", result)
447+
}
448+
449+
@Test
450+
fun diagnosticsViewModel_getProxyConfig_returnsManualForManualProxy() {
451+
dataStore.setProxySetting(ProxySetting.MANUAL_PROXY)
452+
453+
val result = viewModel.getProxyConfig()
454+
455+
assertEquals("MANUAL", result)
456+
}
457+
458+
@Test
459+
fun diagnosticsViewModel_isProxyAuthEnabled_returnTrueWhenUsernameSet() {
460+
dataStore.setProxyUsername("username")
461+
462+
val result = viewModel.isProxyAuthEnabled()
463+
464+
assertTrue(result)
465+
}
466+
467+
@Test
468+
fun diagnosticsViewModel_isProxyAuthEnabled_returnFalseWhenUsernameEmpty() {
469+
dataStore.setProxyUsername("")
470+
471+
val result = viewModel.isProxyAuthEnabled()
472+
473+
assertFalse(result)
474+
}
475+
429476
@Suppress("SameParameterValue")
430477
private fun createTempFileWithStringContent(
431478
filename: String,

app/src/main/kotlin/ee/ria/DigiDoc/fragment/screen/DiagnosticsScreen.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,29 @@ fun DiagnosticsScreen(
538538
stringResource(id = R.string.main_diagnostics_cdoc2_default_keyserver_title),
539539
diagnosticsViewModel.getCdoc2KeyServerUUID(currentConfiguration),
540540
)
541+
SpannableBoldText(
542+
modifier = modifier,
543+
stringResource(id = R.string.main_diagnostics_settings_title),
544+
"",
545+
)
546+
DiagnosticsText(
547+
modifier =
548+
modifier
549+
.semantics {
550+
testTagsAsResourceId = true
551+
}.testTag("mainDiagnosticsProxyConfig"),
552+
stringResource(id = R.string.main_diagnostics_proxy_config_title),
553+
diagnosticsViewModel.getProxyConfig(),
554+
)
555+
DiagnosticsText(
556+
modifier =
557+
modifier
558+
.semantics {
559+
testTagsAsResourceId = true
560+
}.testTag("mainDiagnosticsProxyAuth"),
561+
stringResource(id = R.string.main_diagnostics_proxy_auth_title),
562+
diagnosticsViewModel.isProxyAuthEnabled().toString(),
563+
)
541564
HorizontalDivider(
542565
modifier =
543566
modifier

app/src/main/kotlin/ee/ria/DigiDoc/viewmodel/DiagnosticsViewModel.kt

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import ee.ria.DigiDoc.configuration.repository.ConfigurationRepository
4040
import ee.ria.DigiDoc.configuration.utils.TSLUtil
4141
import ee.ria.DigiDoc.domain.model.settings.CDOCSetting
4242
import ee.ria.DigiDoc.domain.preferences.DataStore
43+
import ee.ria.DigiDoc.network.proxy.ProxySetting
4344
import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.getAccessibilityEventType
4445
import ee.ria.DigiDoc.utils.accessibility.AccessibilityUtil.Companion.sendAccessibilityEvent
4546
import ee.ria.DigiDoc.utilsLib.date.DateUtil
@@ -163,6 +164,15 @@ class DiagnosticsViewModel
163164
return dataStore.getCDOC2UUID(defaultKeyServer)
164165
}
165166

167+
fun getProxyConfig(): String =
168+
when (dataStore.getProxySetting()) {
169+
ProxySetting.NO_PROXY -> "NONE"
170+
ProxySetting.SYSTEM_PROXY -> "SYSTEM"
171+
ProxySetting.MANUAL_PROXY -> "MANUAL"
172+
}
173+
174+
fun isProxyAuthEnabled(): Boolean = dataStore.getProxyUsername().isNotEmpty()
175+
166176
fun getTslCacheData(context: Context): List<String> {
167177
val tslCacheList = ArrayList<String>()
168178
val tslCacheDir = File(context.cacheDir.absolutePath + "/schema")
@@ -390,6 +400,24 @@ class DiagnosticsViewModel
390400
} ${getCdoc2KeyServerUUID(currentConfiguration)}",
391401
)
392402

403+
// Settings
404+
appendLine()
405+
appendLine(context.getString(R.string.main_diagnostics_settings_title))
406+
appendLine(
407+
"${
408+
context.getString(
409+
R.string.main_diagnostics_proxy_config_title,
410+
)
411+
} ${getProxyConfig()}",
412+
)
413+
appendLine(
414+
"${
415+
context.getString(
416+
R.string.main_diagnostics_proxy_auth_title,
417+
)
418+
} ${isProxyAuthEnabled()}",
419+
)
420+
393421
// Category
394422
appendLine()
395423
appendLine(context.getString(R.string.main_diagnostics_tsl_cache_title))

app/src/main/res/values/donottranslate.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@
9999
<string name="main_diagnostics_cdoc2_default_title">CDOC2-DEFAULT:\u0020</string>
100100
<string name="main_diagnostics_cdoc2_use_keyserver_title">CDOC2-USE-KEYSERVER:\u0020</string>
101101
<string name="main_diagnostics_cdoc2_default_keyserver_title">CDOC2-DEFAULT-KEYSERVER:\u0020</string>
102+
<string name="main_diagnostics_settings_title">Settings:</string>
103+
<string name="main_diagnostics_proxy_config_title">Proxy config:\u0020</string>
104+
<string name="main_diagnostics_proxy_auth_title">Proxy auth:\u0020</string>
102105

103106
<string name="main_diagnostics_date_title">DATE:\u0020</string>
104107
<string name="main_diagnostics_serial_title">SERIAL:\u0020</string>

0 commit comments

Comments
 (0)