From 0c2b2268dd69e564f6373d58fde1a1cbbf3400f7 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 2 Apr 2023 15:19:12 -0400 Subject: [PATCH] add strings to strings.xml --- .../java/com/henryhiles/qscan/MainActivity.kt | 11 ++++--- .../components/alerts/PermissionAlert.kt | 29 ++++--------------- .../qscan/components/alerts/ScannedAlert.kt | 23 ++++++++++----- app/src/main/res/values/strings.xml | 12 +++++++- 4 files changed, 40 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/henryhiles/qscan/MainActivity.kt b/app/src/main/java/com/henryhiles/qscan/MainActivity.kt index 69f7a30..9935949 100644 --- a/app/src/main/java/com/henryhiles/qscan/MainActivity.kt +++ b/app/src/main/java/com/henryhiles/qscan/MainActivity.kt @@ -14,6 +14,7 @@ import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.stringResource import com.google.accompanist.permissions.ExperimentalPermissionsApi import com.google.accompanist.permissions.isGranted import com.google.accompanist.permissions.rememberPermissionState @@ -72,12 +73,14 @@ class MainActivity : ComponentActivity() { if (code != "" && !(doNotAsk && isURL(code))) ScannedAlert( onDismiss = { code = "" }, - code = code + code = code, doNotAsk = doNotAsk ) { doNotAsk = it } } else PermissionAlert( - textToShow = if (cameraPermissionState.status.shouldShowRationale) "The camera is important for this app. Please grant the permission." - else "Camera permission is required for this feature to be available. Please grant the permission.", - permissionName = "camera" + textToShow = if (cameraPermissionState.status.shouldShowRationale) stringResource( + id = R.string.camera_rationale + ) + else stringResource(id = R.string.camera_required), + title = stringResource(id = R.string.camera_grant) ) { cameraPermissionState.launchPermissionRequest() } diff --git a/app/src/main/java/com/henryhiles/qscan/components/alerts/PermissionAlert.kt b/app/src/main/java/com/henryhiles/qscan/components/alerts/PermissionAlert.kt index b3edca8..32ddeca 100644 --- a/app/src/main/java/com/henryhiles/qscan/components/alerts/PermissionAlert.kt +++ b/app/src/main/java/com/henryhiles/qscan/components/alerts/PermissionAlert.kt @@ -5,20 +5,20 @@ import androidx.compose.material3.AlertDialog import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable +import androidx.compose.ui.res.stringResource +import com.henryhiles.qscan.R @Composable -fun PermissionAlert(textToShow: String, permissionName: String, onGrantRequest: () -> Unit) { +fun PermissionAlert(textToShow: String, title: String, onGrantRequest: () -> Unit) { AlertDialog( title = { - Text( - text = "${permissionName.replaceFirstChar { it.uppercaseChar() }} permission required", - ) + Text(text = title) }, onDismissRequest = {}, confirmButton = { TextButton(onClick = onGrantRequest) { Text( - text = "Grant Permission", + text = stringResource(id = R.string.action_permission_grant), ) } }, @@ -30,21 +30,4 @@ fun PermissionAlert(textToShow: String, permissionName: String, onGrantRequest: } } ) -} - - -//Surface( -//shape = MaterialTheme.shapes.large -//) { -// Column(modifier = Modifier.padding(16.dp)) { - - -// -// Row( -// modifier = Modifier.fillMaxWidth(), -// horizontalArrangement = Arrangement.End -// ) { - -// } -// } -//} \ No newline at end of file +} \ No newline at end of file diff --git a/app/src/main/java/com/henryhiles/qscan/components/alerts/ScannedAlert.kt b/app/src/main/java/com/henryhiles/qscan/components/alerts/ScannedAlert.kt index 878af00..23755d1 100644 --- a/app/src/main/java/com/henryhiles/qscan/components/alerts/ScannedAlert.kt +++ b/app/src/main/java/com/henryhiles/qscan/components/alerts/ScannedAlert.kt @@ -10,24 +10,31 @@ import androidx.compose.material3.TextButton import androidx.compose.runtime.* import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalUriHandler +import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import com.henryhiles.qscan.LabelledCheckBox +import com.henryhiles.qscan.R import com.henryhiles.qscan.utils.Helpers.isURL @Composable -fun ScannedAlert(onDismiss: () -> Unit, code: String, onChangeDoNotAsk: (Boolean) -> Unit) { +fun ScannedAlert( + onDismiss: () -> Unit, + code: String, + doNotAsk: Boolean, + onChangeDoNotAsk: (Boolean) -> Unit +) { val uriHandler = LocalUriHandler.current - var tempDoNotAsk by remember { mutableStateOf(false) } + var tempDoNotAsk by remember { mutableStateOf(doNotAsk) } AlertDialog( title = { Text( - text = "QR Code Scanned", + text = stringResource(id = R.string.code_scanned), ) }, onDismissRequest = onDismiss, dismissButton = { TextButton(onClick = onDismiss) { Text( - text = "Cancel", + text = stringResource(id = R.string.action_cancel), ) } }, @@ -35,14 +42,16 @@ fun ScannedAlert(onDismiss: () -> Unit, code: String, onChangeDoNotAsk: (Boolean Column { SelectionContainer { Text( - text = if (isURL(code)) "This QR code will take you to $code, are you sure you want to go there?" else "The content of that QR Code is \"$code\"", + text = stringResource(id = if (isURL(code)) R.string.code_description_url else R.string.code_description_text).format( + code + ), ) } Spacer(modifier = Modifier.height(16.dp)) LabelledCheckBox( checked = tempDoNotAsk, onCheckedChange = { tempDoNotAsk = it }, - label = "Don't ask again" + label = stringResource(id = R.string.setting_do_not_ask) ) } }, @@ -54,7 +63,7 @@ fun ScannedAlert(onDismiss: () -> Unit, code: String, onChangeDoNotAsk: (Boolean onDismiss() }) { Text( - text = "Open URL", + text = stringResource(id = R.string.action_open_url), ) } }) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b956e11..0bdb9c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,3 +1,13 @@ - QScan + QScan + Camera permission required + "The camera is important for this app. Please grant the permission." + "Camera permission is required for this feature to be available. Please grant the permission." + Cancel + Grant permission + Open URL + Don\'t ask again + QR Code Scanned + This QR code will take you to %1$s, are you sure you want to go there?" + The content of that QR Code is "%1$s". \ No newline at end of file