diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt index 8666777a06..01508debfa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/start/InviteFriendFragment.kt @@ -103,15 +103,15 @@ class InviteFriendFragment : Fragment() { Text(stringResource(R.string.share)) } - TemporaryStateButton { source, temporary -> + TemporaryStateButton { source, isTemporary -> OutlineButton( modifier = Modifier.weight(1f) .contentDescription("Copy button"), interactionSource = source, onClick = { requireContext().copyPublicKey() }, ) { - AnimatedVisibility(temporary) { Text(stringResource(R.string.copied)) } - AnimatedVisibility(!temporary) { Text(stringResource(R.string.copy)) } + AnimatedVisibility(isTemporary) { Text(stringResource(R.string.copied)) } + AnimatedVisibility(!isTemporary) { Text(stringResource(R.string.copy)) } } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt index 46bf599201..5574c78baf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/home/HomeActivity.kt @@ -103,6 +103,7 @@ import org.thoughtcrime.securesms.ui.SessionShieldIcon import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider import org.thoughtcrime.securesms.ui.components.OutlineButton import org.thoughtcrime.securesms.ui.contentDescription +import org.thoughtcrime.securesms.ui.contentDescription import org.thoughtcrime.securesms.ui.h8 import org.thoughtcrime.securesms.ui.small import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities @@ -393,7 +394,7 @@ class HomeActivity : PassphraseRequiredActionBarActivity(), Spacer(Modifier.width(12.dp)) OutlineButton( textId = R.string.continue_2, - Modifier + modifier = Modifier .align(Alignment.CenterVertically) .contentDescription(R.string.AccessibilityId_reveal_recovery_phrase_button), onClick = { start() } diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/LandingActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/LandingActivity.kt index 1a138cd165..4c4aa13bed 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/LandingActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/LandingActivity.kt @@ -185,11 +185,11 @@ class LandingActivity : BaseActionBarActivity() { showOpenUrlDialog { button( R.string.activity_landing_terms_of_service, - contentDescriptionRes = R.string.AccessibilityId_terms_of_service_link + contentDescriptionRes = R.string.AccessibilityId_terms_of_service_button ) { open("https://getsession.org/terms-of-service") } button( R.string.activity_landing_privacy_policy, - contentDescriptionRes = R.string.AccessibilityId_privacy_policy_link + contentDescriptionRes = R.string.AccessibilityId_privacy_policy_button ) { open("https://getsession.org/privacy-policy") } } } @@ -264,4 +264,4 @@ private fun ChatText( ) .padding(horizontal = 16.dp, vertical = 12.dp) ) -} \ No newline at end of file +} diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotificationsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotificationsActivity.kt index 0fdc5a630b..31f2f39c7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotificationsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/messagenotifications/MessageNotificationsActivity.kt @@ -128,6 +128,7 @@ fun MessageNotificationsScreen( OutlineButton( textId = R.string.continue_2, modifier = Modifier + .contentDescription(R.string.AccessibilityId_continue) .align(Alignment.CenterHorizontally) .width(262.dp), onClick = onContinue diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameActivity.kt index 96ca97f334..36a2f6f99d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/pickname/PickDisplayNameActivity.kt @@ -124,7 +124,12 @@ class PickDisplayNameActivity : BaseActionBarActivity() { ) state.error?.let { - Text(stringResource(it), style = MaterialTheme.typography.baseBold, color = MaterialTheme.colors.error) + Text( + stringResource(it), + modifier = Modifier.contentDescription(R.string.AccessibilityId_error_message), + style = MaterialTheme.typography.baseBold, + color = MaterialTheme.colors.error + ) } Spacer(modifier = Modifier.weight(2f)) @@ -132,6 +137,7 @@ class PickDisplayNameActivity : BaseActionBarActivity() { OutlineButton( textId = R.string.continue_2, modifier = Modifier + .contentDescription(R.string.AccessibilityId_continue) .align(Alignment.CenterHorizontally) .width(262.dp), onClick = onContinue, diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt index 3c82652985..a454cfe5c5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt @@ -24,13 +24,16 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.ComposeView +import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp +import androidx.core.content.ContentProviderCompat.requireContext import network.loki.messenger.R import org.thoughtcrime.securesms.BaseActionBarActivity +import org.thoughtcrime.securesms.preferences.copyPublicKey import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.ui.AppTheme import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin @@ -69,7 +72,7 @@ class RecoveryPasswordActivity : BaseActionBarActivity() { showSessionDialog { title(R.string.recoveryPasswordHidePermanently) htmlText(R.string.recoveryPasswordHidePermanentlyDescription1) - destructiveButton(R.string.continue_2) { onHideConfirm() } + destructiveButton(R.string.continue_2, R.string.AccessibilityId_continue) { onHideConfirm() } cancelButton() } } @@ -110,6 +113,7 @@ fun RecoveryPassword( Column( verticalArrangement = Arrangement.spacedBy(16.dp), modifier = Modifier + .contentDescription(R.string.AccessibilityId_recovery_password) .verticalScroll(rememberScrollState()) .padding(bottom = 16.dp) ) { @@ -141,6 +145,7 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) { Text( seed, modifier = Modifier + .contentDescription(R.string.AccessibilityId_hide_recovery_password_button) .padding(vertical = 24.dp) .border( width = 1.dp, @@ -167,14 +172,15 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) { AnimatedVisibility(!showQr) { Row(horizontalArrangement = Arrangement.spacedBy(32.dp)) { - TemporaryStateButton { source, temporary -> + TemporaryStateButton { source, isTemporary -> OutlineButton( - modifier = Modifier.weight(1f), + modifier = Modifier.weight(1f) + .contentDescription(R.string.AccessibilityId_copy_button), interactionSource = source, - onClick = { copySeed() }, + onClick = copySeed, ) { - AnimatedVisibility(temporary) { Text(stringResource(R.string.copied)) } - AnimatedVisibility(!temporary) { Text(stringResource(R.string.copy)) } + AnimatedVisibility(isTemporary) { Text(stringResource(R.string.copied)) } + AnimatedVisibility(!isTemporary) { Text(stringResource(R.string.copy)) } } } OutlineButton(textId = R.string.qrView, modifier = Modifier.weight(1f), onClick = { showQr = !showQr }) diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt index ff0d88d528..3fda58f984 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/Components.kt @@ -283,7 +283,7 @@ fun Modifier.contentDescription(text: GetString?): Modifier { } @Composable -fun Modifier.contentDescription(id: Int?): Modifier { +fun Modifier.contentDescription(@StringRes id: Int?): Modifier { val context = LocalContext.current return id?.let { semantics { contentDescription = context.getString(it) } } ?: this } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e0d2a8dde0..ad3fc62319 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -134,6 +134,7 @@ Username Privacy Recovery password menu item + Recovery password Edit user nickname Apply Cancel @@ -1111,7 +1112,8 @@ Create account button Restore your session button Privacy policy link - Terms of service link + Terms of service button + Privacy policy button Loading animation Recovery phrase input Error message @@ -1136,4 +1138,5 @@ This QR code does not contain an Account ID. Invite friend button Help desk link + Copy button