mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 15: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))
|
Text(stringResource(R.string.share))
|
||||||
}
|
}
|
||||||
|
|
||||||
TemporaryStateButton { source, temporary ->
|
TemporaryStateButton { source, isTemporary ->
|
||||||
OutlineButton(
|
OutlineButton(
|
||||||
modifier = Modifier.weight(1f)
|
modifier = Modifier.weight(1f)
|
||||||
.contentDescription("Copy button"),
|
.contentDescription("Copy button"),
|
||||||
interactionSource = source,
|
interactionSource = source,
|
||||||
onClick = { requireContext().copyPublicKey() },
|
onClick = { requireContext().copyPublicKey() },
|
||||||
) {
|
) {
|
||||||
AnimatedVisibility(temporary) { Text(stringResource(R.string.copied)) }
|
AnimatedVisibility(isTemporary) { Text(stringResource(R.string.copied)) }
|
||||||
AnimatedVisibility(!temporary) { Text(stringResource(R.string.copy)) }
|
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.ThemeResPreviewParameterProvider
|
||||||
import org.thoughtcrime.securesms.ui.components.OutlineButton
|
import org.thoughtcrime.securesms.ui.components.OutlineButton
|
||||||
import org.thoughtcrime.securesms.ui.contentDescription
|
import org.thoughtcrime.securesms.ui.contentDescription
|
||||||
|
import org.thoughtcrime.securesms.ui.contentDescription
|
||||||
import org.thoughtcrime.securesms.ui.h8
|
import org.thoughtcrime.securesms.ui.h8
|
||||||
import org.thoughtcrime.securesms.ui.small
|
import org.thoughtcrime.securesms.ui.small
|
||||||
import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities
|
import org.thoughtcrime.securesms.util.ConfigurationMessageUtilities
|
||||||
@ -393,7 +394,7 @@ class HomeActivity : PassphraseRequiredActionBarActivity(),
|
|||||||
Spacer(Modifier.width(12.dp))
|
Spacer(Modifier.width(12.dp))
|
||||||
OutlineButton(
|
OutlineButton(
|
||||||
textId = R.string.continue_2,
|
textId = R.string.continue_2,
|
||||||
Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.CenterVertically)
|
.align(Alignment.CenterVertically)
|
||||||
.contentDescription(R.string.AccessibilityId_reveal_recovery_phrase_button),
|
.contentDescription(R.string.AccessibilityId_reveal_recovery_phrase_button),
|
||||||
onClick = { start<RecoveryPasswordActivity>() }
|
onClick = { start<RecoveryPasswordActivity>() }
|
||||||
|
@ -185,11 +185,11 @@ class LandingActivity : BaseActionBarActivity() {
|
|||||||
showOpenUrlDialog {
|
showOpenUrlDialog {
|
||||||
button(
|
button(
|
||||||
R.string.activity_landing_terms_of_service,
|
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") }
|
) { open("https://getsession.org/terms-of-service") }
|
||||||
button(
|
button(
|
||||||
R.string.activity_landing_privacy_policy,
|
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") }
|
) { open("https://getsession.org/privacy-policy") }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,6 +128,7 @@ fun MessageNotificationsScreen(
|
|||||||
OutlineButton(
|
OutlineButton(
|
||||||
textId = R.string.continue_2,
|
textId = R.string.continue_2,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.contentDescription(R.string.AccessibilityId_continue)
|
||||||
.align(Alignment.CenterHorizontally)
|
.align(Alignment.CenterHorizontally)
|
||||||
.width(262.dp),
|
.width(262.dp),
|
||||||
onClick = onContinue
|
onClick = onContinue
|
||||||
|
@ -124,7 +124,12 @@ class PickDisplayNameActivity : BaseActionBarActivity() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
state.error?.let {
|
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))
|
Spacer(modifier = Modifier.weight(2f))
|
||||||
@ -132,6 +137,7 @@ class PickDisplayNameActivity : BaseActionBarActivity() {
|
|||||||
OutlineButton(
|
OutlineButton(
|
||||||
textId = R.string.continue_2,
|
textId = R.string.continue_2,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.contentDescription(R.string.AccessibilityId_continue)
|
||||||
.align(Alignment.CenterHorizontally)
|
.align(Alignment.CenterHorizontally)
|
||||||
.width(262.dp),
|
.width(262.dp),
|
||||||
onClick = onContinue,
|
onClick = onContinue,
|
||||||
|
@ -24,13 +24,16 @@ import androidx.compose.runtime.setValue
|
|||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.platform.ComposeView
|
import androidx.compose.ui.platform.ComposeView
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.font.FontFamily
|
import androidx.compose.ui.text.font.FontFamily
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.core.content.ContentProviderCompat.requireContext
|
||||||
import network.loki.messenger.R
|
import network.loki.messenger.R
|
||||||
import org.thoughtcrime.securesms.BaseActionBarActivity
|
import org.thoughtcrime.securesms.BaseActionBarActivity
|
||||||
|
import org.thoughtcrime.securesms.preferences.copyPublicKey
|
||||||
import org.thoughtcrime.securesms.showSessionDialog
|
import org.thoughtcrime.securesms.showSessionDialog
|
||||||
import org.thoughtcrime.securesms.ui.AppTheme
|
import org.thoughtcrime.securesms.ui.AppTheme
|
||||||
import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin
|
import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin
|
||||||
@ -69,7 +72,7 @@ class RecoveryPasswordActivity : BaseActionBarActivity() {
|
|||||||
showSessionDialog {
|
showSessionDialog {
|
||||||
title(R.string.recoveryPasswordHidePermanently)
|
title(R.string.recoveryPasswordHidePermanently)
|
||||||
htmlText(R.string.recoveryPasswordHidePermanentlyDescription1)
|
htmlText(R.string.recoveryPasswordHidePermanentlyDescription1)
|
||||||
destructiveButton(R.string.continue_2) { onHideConfirm() }
|
destructiveButton(R.string.continue_2, R.string.AccessibilityId_continue) { onHideConfirm() }
|
||||||
cancelButton()
|
cancelButton()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -110,6 +113,7 @@ fun RecoveryPassword(
|
|||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.spacedBy(16.dp),
|
verticalArrangement = Arrangement.spacedBy(16.dp),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.contentDescription(R.string.AccessibilityId_recovery_password)
|
||||||
.verticalScroll(rememberScrollState())
|
.verticalScroll(rememberScrollState())
|
||||||
.padding(bottom = 16.dp)
|
.padding(bottom = 16.dp)
|
||||||
) {
|
) {
|
||||||
@ -141,6 +145,7 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) {
|
|||||||
Text(
|
Text(
|
||||||
seed,
|
seed,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
.contentDescription(R.string.AccessibilityId_hide_recovery_password_button)
|
||||||
.padding(vertical = 24.dp)
|
.padding(vertical = 24.dp)
|
||||||
.border(
|
.border(
|
||||||
width = 1.dp,
|
width = 1.dp,
|
||||||
@ -167,14 +172,15 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) {
|
|||||||
|
|
||||||
AnimatedVisibility(!showQr) {
|
AnimatedVisibility(!showQr) {
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(32.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(32.dp)) {
|
||||||
TemporaryStateButton { source, temporary ->
|
TemporaryStateButton { source, isTemporary ->
|
||||||
OutlineButton(
|
OutlineButton(
|
||||||
modifier = Modifier.weight(1f),
|
modifier = Modifier.weight(1f)
|
||||||
|
.contentDescription(R.string.AccessibilityId_copy_button),
|
||||||
interactionSource = source,
|
interactionSource = source,
|
||||||
onClick = { copySeed() },
|
onClick = copySeed,
|
||||||
) {
|
) {
|
||||||
AnimatedVisibility(temporary) { Text(stringResource(R.string.copied)) }
|
AnimatedVisibility(isTemporary) { Text(stringResource(R.string.copied)) }
|
||||||
AnimatedVisibility(!temporary) { Text(stringResource(R.string.copy)) }
|
AnimatedVisibility(!isTemporary) { Text(stringResource(R.string.copy)) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
OutlineButton(textId = R.string.qrView, modifier = Modifier.weight(1f), onClick = { showQr = !showQr })
|
OutlineButton(textId = R.string.qrView, modifier = Modifier.weight(1f), onClick = { showQr = !showQr })
|
||||||
|
@ -283,7 +283,7 @@ fun Modifier.contentDescription(text: GetString?): Modifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun Modifier.contentDescription(id: Int?): Modifier {
|
fun Modifier.contentDescription(@StringRes id: Int?): Modifier {
|
||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
return id?.let { semantics { contentDescription = context.getString(it) } } ?: this
|
return id?.let { semantics { contentDescription = context.getString(it) } } ?: this
|
||||||
}
|
}
|
||||||
|
@ -134,6 +134,7 @@
|
|||||||
<string name="AccessibilityId_username">Username</string>
|
<string name="AccessibilityId_username">Username</string>
|
||||||
<string name="AccessibilityId_privacy">Privacy</string>
|
<string name="AccessibilityId_privacy">Privacy</string>
|
||||||
<string name="AccessibilityId_recovery_password_menu_item">Recovery password menu item</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_edit_user_nickname">Edit user nickname</string>
|
||||||
<string name="AccessibilityId_apply">Apply</string>
|
<string name="AccessibilityId_apply">Apply</string>
|
||||||
<string name="AccessibilityId_cancel">Cancel</string>
|
<string name="AccessibilityId_cancel">Cancel</string>
|
||||||
@ -1111,7 +1112,8 @@
|
|||||||
<string name="AccessibilityId_create_account_button">Create account button</string>
|
<string name="AccessibilityId_create_account_button">Create account button</string>
|
||||||
<string name="AccessibilityId_restore_account_button">Restore your session 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_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_loading_animation">Loading animation</string>
|
||||||
<string name="AccessibilityId_recovery_phrase_input">Recovery phrase input</string>
|
<string name="AccessibilityId_recovery_phrase_input">Recovery phrase input</string>
|
||||||
<string name="AccessibilityId_error_message">Error message</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="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_invite_friend_button">Invite friend button</string>
|
||||||
<string name="AccessibilityId_help_desk_link">Help desk link</string>
|
<string name="AccessibilityId_help_desk_link">Help desk link</string>
|
||||||
|
<string name="AccessibilityId_copy_button">Copy button</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user