mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-17 11:58:25 +00:00
Add contentDescriptions
This commit is contained in:
parent
50addd644c
commit
c489765a50
@ -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)) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<RecoveryPasswordActivity>() }
|
||||
|
@ -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)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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 })
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -134,6 +134,7 @@
|
||||
<string name="AccessibilityId_username">Username</string>
|
||||
<string name="AccessibilityId_privacy">Privacy</string>
|
||||
<string name="AccessibilityId_recovery_password_menu_item">Recovery password menu item</string>
|
||||
<string name="AccessibilityId_recovery_password">Recovery password</string>
|
||||
<string name="AccessibilityId_edit_user_nickname">Edit user nickname</string>
|
||||
<string name="AccessibilityId_apply">Apply</string>
|
||||
<string name="AccessibilityId_cancel">Cancel</string>
|
||||
@ -1111,7 +1112,8 @@
|
||||
<string name="AccessibilityId_create_account_button">Create account button</string>
|
||||
<string name="AccessibilityId_restore_account_button">Restore your session button</string>
|
||||
<string name="AccessibilityId_privacy_policy_link">Privacy policy link</string>
|
||||
<string name="AccessibilityId_terms_of_service_link">Terms of service link</string>
|
||||
<string name="AccessibilityId_terms_of_service_button">Terms of service button</string>
|
||||
<string name="AccessibilityId_privacy_policy_button">Privacy policy button</string>
|
||||
<string name="AccessibilityId_loading_animation">Loading animation</string>
|
||||
<string name="AccessibilityId_recovery_phrase_input">Recovery phrase input</string>
|
||||
<string name="AccessibilityId_error_message">Error message</string>
|
||||
@ -1136,4 +1138,5 @@
|
||||
<string name="this_qr_code_does_not_contain_an_account_id">This QR code does not contain an Account ID.</string>
|
||||
<string name="AccessibilityId_invite_friend_button">Invite friend button</string>
|
||||
<string name="AccessibilityId_help_desk_link">Help desk link</string>
|
||||
<string name="AccessibilityId_copy_button">Copy button</string>
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user