diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt index cce7b8dd09..aae44137cc 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt @@ -206,14 +206,15 @@ private fun ExportVaultScreenContent( Spacer(modifier = Modifier.height(16.dp)) } + val resources = LocalContext.current.resources BitwardenMultiSelectButton( label = stringResource(id = R.string.file_format), - options = ExportVaultFormat.entries.map { it.displayLabel }.toImmutableList(), - selectedOption = state.exportFormat.displayLabel, + options = ExportVaultFormat.entries.map { it.displayLabel() }.toImmutableList(), + selectedOption = state.exportFormat.displayLabel(), onOptionSelected = { selectedOptionLabel -> val selectedOption = ExportVaultFormat .entries - .first { it.displayLabel == selectedOptionLabel } + .first { it.displayLabel(resources) == selectedOptionLabel } onExportFormatOptionSelected(selectedOption) }, isEnabled = !state.policyPreventsExport, diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensions.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensions.kt index 3a352047c2..ee9ae30b3e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensions.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensions.kt @@ -1,15 +1,20 @@ package com.x8bit.bitwarden.ui.platform.util +import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.base.util.Text +import com.x8bit.bitwarden.ui.platform.base.util.asText import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat /** * Provides a human-readable label for the export format. */ -val ExportVaultFormat.displayLabel: String +val ExportVaultFormat.displayLabel: Text get() = when (this) { - ExportVaultFormat.JSON -> ".json" - ExportVaultFormat.CSV -> ".csv" - ExportVaultFormat.JSON_ENCRYPTED -> ".json (Encrypted)" + ExportVaultFormat.JSON -> R.string.json_extension.asText() + ExportVaultFormat.CSV -> R.string.csv_extension.asText() + ExportVaultFormat.JSON_ENCRYPTED -> R.string.json_extension_formatted.asText( + R.string.password_protected.asText(), + ) } /** diff --git a/app/src/main/res/values/strings_non_localized.xml b/app/src/main/res/values/strings_non_localized.xml index f0ed16e2dc..e9a92f4c79 100644 --- a/app/src/main/res/values/strings_non_localized.xml +++ b/app/src/main/res/values/strings_non_localized.xml @@ -1,10 +1,14 @@ Bitwarden Dev + .csv Duo Duo (%1$s) + .json + .json (%1$s) Give Feedback Continue to Give Feedback? Select continue to provide feedback on your experience in a web form. + Password Protected diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt index e5f9875c30..7f8d475579 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/util/ExportVaultFormatExtensionTest.kt @@ -1,5 +1,7 @@ package com.x8bit.bitwarden.ui.platform.util +import com.x8bit.bitwarden.R +import com.x8bit.bitwarden.ui.platform.base.util.asText import com.x8bit.bitwarden.ui.platform.feature.settings.exportvault.model.ExportVaultFormat import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test @@ -8,9 +10,11 @@ class ExportVaultFormatExtensionTest { @Test fun `displayLabel should return the correct value for each type`() { mapOf( - ExportVaultFormat.JSON to ".json", - ExportVaultFormat.CSV to ".csv", - ExportVaultFormat.JSON_ENCRYPTED to ".json (Encrypted)", + ExportVaultFormat.JSON to R.string.json_extension.asText(), + ExportVaultFormat.CSV to R.string.csv_extension.asText(), + ExportVaultFormat.JSON_ENCRYPTED to R.string.json_extension_formatted.asText( + R.string.password_protected.asText(), + ), ) .forEach { (type, label) -> assertEquals(