Finish contentDescriptions

This commit is contained in:
Andrew 2024-06-06 12:21:25 +09:30
parent 6ffb71e6a1
commit f40a0a8a48
10 changed files with 83 additions and 63 deletions

View File

@ -163,7 +163,7 @@ fun EnterAccountId(
if (state.error == null) { if (state.error == null) {
BorderlessButtonSecondary( BorderlessButtonSecondary(
text = stringResource(R.string.messageNewDescription), text = stringResource(R.string.messageNewDescription),
contentDescription = GetString(R.string.AccessibilityId_help_desk_link), modifier = Modifier.contentDescription(R.string.AccessibilityId_help_desk_link)
) { onHelp() } ) { onHelp() }
} }

View File

@ -4,7 +4,6 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.border import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Arrangement.Absolute.spacedBy import androidx.compose.foundation.layout.Arrangement.Absolute.spacedBy
@ -25,6 +24,7 @@ import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
@ -39,7 +39,6 @@ import org.thoughtcrime.securesms.ui.components.OnPrimaryButtons
import org.thoughtcrime.securesms.ui.components.OutlineButton import org.thoughtcrime.securesms.ui.components.OutlineButton
import org.thoughtcrime.securesms.ui.components.OutlineTemporaryStateButton import org.thoughtcrime.securesms.ui.components.OutlineTemporaryStateButton
import org.thoughtcrime.securesms.ui.components.SmallButtons import org.thoughtcrime.securesms.ui.components.SmallButtons
import org.thoughtcrime.securesms.ui.components.TemporaryStateButton
import org.thoughtcrime.securesms.ui.contentDescription import org.thoughtcrime.securesms.ui.contentDescription
import org.thoughtcrime.securesms.ui.small import org.thoughtcrime.securesms.ui.small
@ -53,15 +52,32 @@ class InviteFriendFragment : Fragment() {
): View = ComposeView(requireContext()).apply { ): View = ComposeView(requireContext()).apply {
setContent { setContent {
AppTheme { AppTheme {
InviteFriend() InviteFriend(
onBack = { delegate.onDialogBackPressed() },
onClose = { delegate.onDialogClosePressed() },
copyPublicKey = requireContext()::copyPublicKey,
sendInvitation = requireContext()::sendInvitation,
)
}
} }
} }
} }
@Preview
@Composable @Composable
private fun InviteFriend() { private fun PreviewInviteFriend() {
InviteFriend()
}
@Composable
private fun InviteFriend(
onBack: () -> Unit = {},
onClose: () -> Unit = {},
copyPublicKey: () -> Unit = {},
sendInvitation: () -> Unit = {},
) {
Column(modifier = Modifier.background(MaterialTheme.colors.primarySurface)) { Column(modifier = Modifier.background(MaterialTheme.colors.primarySurface)) {
AppBar(stringResource(R.string.invite_a_friend), onBack = { delegate.onDialogBackPressed() }, onClose = { delegate.onDialogClosePressed() }) AppBar(stringResource(R.string.invite_a_friend), onBack = onBack, onClose = onClose)
Column( Column(
modifier = Modifier.padding(horizontal = 24.dp), modifier = Modifier.padding(horizontal = 24.dp),
verticalArrangement = spacedBy(10.dp) verticalArrangement = spacedBy(10.dp)
@ -100,7 +116,7 @@ class InviteFriendFragment : Fragment() {
modifier = Modifier modifier = Modifier
.weight(1f) .weight(1f)
.contentDescription("Share button"), .contentDescription("Share button"),
onClick = { requireContext().sendInvitation() } onClick = sendInvitation
) { ) {
Text(stringResource(R.string.share)) Text(stringResource(R.string.share))
} }
@ -108,8 +124,8 @@ class InviteFriendFragment : Fragment() {
OutlineTemporaryStateButton( OutlineTemporaryStateButton(
Modifier Modifier
.weight(1f) .weight(1f)
.contentDescription("Copy button"), .contentDescription(R.string.AccessibilityId_copy_button),
onClick = { requireContext().copyPublicKey() } onClick = copyPublicKey
) { isTemporary -> ) { isTemporary ->
Text(stringResource(if (isTemporary) R.string.copied else R.string.copy)) Text(stringResource(if (isTemporary) R.string.copied else R.string.copy))
} }
@ -119,4 +135,3 @@ class InviteFriendFragment : Fragment() {
} }
} }
} }
}

View File

@ -70,7 +70,7 @@ class NewConversationHomeFragment : Fragment() {
Spacer(modifier = Modifier.height(4.dp)) Spacer(modifier = Modifier.height(4.dp))
Text(text = stringResource(R.string.qrYoursDescription), color = classicDarkColors[5], style = MaterialTheme.typography.small) Text(text = stringResource(R.string.qrYoursDescription), color = classicDarkColors[5], style = MaterialTheme.typography.small)
Spacer(modifier = Modifier.height(20.dp)) Spacer(modifier = Modifier.height(20.dp))
QrImage(string = TextSecurePreferences.getLocalNumber(requireContext())!!, contentDescription = "Your session id") QrImage(string = TextSecurePreferences.getLocalNumber(requireContext())!!, contentDescription = stringResource(R.string.AccessibilityId_qr_code))
} }
} }
} }

View File

@ -143,7 +143,7 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) {
Text( Text(
seed, seed,
modifier = Modifier modifier = Modifier
.contentDescription(R.string.AccessibilityId_hide_recovery_password_button) .contentDescription(R.string.AccessibilityId_recovery_password_container)
.padding(vertical = 24.dp) .padding(vertical = 24.dp)
.border( .border(
width = 1.dp, width = 1.dp,
@ -164,7 +164,7 @@ fun RecoveryPasswordCell(seed: String, copySeed:() -> Unit = {}) {
QrImage( QrImage(
seed, seed,
modifier = Modifier.padding(vertical = 24.dp), modifier = Modifier.padding(vertical = 24.dp),
contentDescription = "QR code of your recovery password", contentDescription = stringResource(R.string.AccessibilityId_qr_code),
icon = R.drawable.session_shield icon = R.drawable.session_shield
) )
} }

View File

@ -91,7 +91,7 @@ fun QrPage(string: String) {
) { ) {
QrImage( QrImage(
string = string, string = string,
contentDescription = "Your session id", contentDescription = stringResource(R.string.AccessibilityId_qr_code),
modifier = Modifier.padding(top = 32.dp, bottom = 12.dp), modifier = Modifier.padding(top = 32.dp, bottom = 12.dp),
icon = R.drawable.session icon = R.drawable.session
) )

View File

@ -83,6 +83,7 @@ import org.thoughtcrime.securesms.ui.ItemButtonWithDrawable
import org.thoughtcrime.securesms.ui.components.OutlineButton import org.thoughtcrime.securesms.ui.components.OutlineButton
import org.thoughtcrime.securesms.ui.components.OutlineTemporaryStateButton import org.thoughtcrime.securesms.ui.components.OutlineTemporaryStateButton
import org.thoughtcrime.securesms.ui.components.TemporaryStateButton import org.thoughtcrime.securesms.ui.components.TemporaryStateButton
import org.thoughtcrime.securesms.ui.contentDescription
import org.thoughtcrime.securesms.ui.destructiveButtonColors import org.thoughtcrime.securesms.ui.destructiveButtonColors
import org.thoughtcrime.securesms.util.BitmapDecodingException import org.thoughtcrime.securesms.util.BitmapDecodingException
import org.thoughtcrime.securesms.util.BitmapUtil import org.thoughtcrime.securesms.util.BitmapUtil
@ -402,7 +403,8 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
} }
OutlineTemporaryStateButton( OutlineTemporaryStateButton(
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f)
.contentDescription(R.string.AccessibilityId_copy_button),
onClick = { copyPublicKey() }, onClick = { copyPublicKey() },
) { isTemporary -> ) { isTemporary ->
Text(stringResource(if (isTemporary) R.string.copied else R.string.copy)) Text(stringResource(if (isTemporary) R.string.copied else R.string.copy))

View File

@ -148,12 +148,12 @@ fun FilledButton(
@Composable @Composable
fun BorderlessButtonSecondary( fun BorderlessButtonSecondary(
text: String, text: String,
contentDescription: GetString = GetString(text), modifier: Modifier = Modifier,
onClick: () -> Unit onClick: () -> Unit
) { ) {
BorderlessButton( BorderlessButton(
text, text,
contentDescription = contentDescription, modifier = modifier,
contentColor = MaterialTheme.colors.onSurface.copy(ContentAlpha.medium), contentColor = MaterialTheme.colors.onSurface.copy(ContentAlpha.medium),
onClick = onClick onClick = onClick
) )

View File

@ -43,7 +43,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:contentDescription="@string/AccessibilityId_account_id" android:contentDescription="@string/AccessibilityId_enter_display_name"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp" android:paddingBottom="12dp"
android:visibility="invisible" android:visibility="invisible"

View File

@ -6,7 +6,7 @@
<item <item
android:id="@+id/action_qr_code" android:id="@+id/action_qr_code"
android:title="" android:title=""
android:contentDescription="View QR code" android:contentDescription="@string/AccessibilityId_view_qr_code"
android:icon="@drawable/ic_qr_code_24" android:icon="@drawable/ic_qr_code_24"
app:showAsAction="always" /> app:showAsAction="always" />

View File

@ -1118,6 +1118,7 @@
<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>
<string name="AccessibilityId_hide_recovery_password_button">Hide recovery password button</string> <string name="AccessibilityId_hide_recovery_password_button">Hide recovery password button</string>
<string name="AccessibilityId_recovery_password_container">Recovery password container</string>
<string name="AccessibilityId_confirm_button">Confirm button</string> <string name="AccessibilityId_confirm_button">Confirm button</string>
<string name="AccessibilityId_open_url">Open URL</string> <string name="AccessibilityId_open_url">Open URL</string>
<string name="accountIdErrorInvalid">This Account ID is invalid. Please check and try again.</string> <string name="accountIdErrorInvalid">This Account ID is invalid. Please check and try again.</string>
@ -1139,4 +1140,6 @@
<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> <string name="AccessibilityId_copy_button">Copy button</string>
<string name="AccessibilityId_view_qr_code">View QR code</string>
<string name="AccessibilityId_qr_code">QR code</string>
</resources> </resources>