Add accessibility tags (#1054)

* adding accessibility id to new conversation button

* adding accessibility ids and strings for testing

* updating id tags for new conversation buttons

* accessibility tags for create contact test

* adding ids for message requests, config message, requests banner and conversation view

* adding more tags to settings page

* adding tags to different resolutions for landing page

* updating display name in settings to include accessibility id

* found some stashed changes which i forgot about

* more stashed changes

* adding tags to layout sw400dp

* closed group testing, delete/unsend message testing and selecting contacts tag

* adding tags for message body, selecting contacts for group creation, deleted message config, unsend message modal, and trash icon

* added tags for disappearing messages menu option, time selector, clock icon, confirm of change (ok)and control message

* add test for block user

* docs: Adding in accessibility ID's for Appium testing

* accessibility tags for conversation options, profile picture/settings and block options

* Add content descriptions for better accessibility

* Add more content descriptions

* Add timer icon content description

* Update profile picture content description

* Adding accessibility ids to new conversation creation screen and to message notification settings

* fix: content descriptions in their correct places and prevent a crash

* build: update build number

* build: update build number

* Adding back in FrameLayout, making changes as request

* Fixed viewPager move

* Fixing changes as requested by Jubb

* Adding content descriptions to mentions list, voice message settings, link preview permissions, closed group menu and slow mode notifications option

* Adds content descriptions to blocked contacts heading in conversations settings, individual contacts in blocked contacts page and to empty message requests folder

* Adds content descriptions to empty message request folder and text input box for username on settings page

---------

Co-authored-by: charles <charles@oxen.io>
Co-authored-by: hjubb <hjubb@users.noreply.github.com>
This commit is contained in:
wafflesvsfrankie 2023-04-04 11:33:17 +10:00 committed by GitHub
parent cfdc3dc24d
commit 9ad73139b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
74 changed files with 423 additions and 83 deletions

View File

@ -5,8 +5,9 @@ import androidx.annotation.AttrRes
/** /**
* Represents an action to be rendered * Represents an action to be rendered
*/ */
data class ActionItem( data class ActionItem @JvmOverloads constructor(
@AttrRes val iconRes: Int, @AttrRes val iconRes: Int,
val title: CharSequence, val title: CharSequence,
val action: Runnable val action: Runnable,
val contentDescription: String? = null
) )

View File

@ -77,6 +77,7 @@ class ContextMenuList(recyclerView: RecyclerView, onItemClick: () -> Unit) {
context.theme.resolveAttribute(model.item.iconRes, typedValue, true) context.theme.resolveAttribute(model.item.iconRes, typedValue, true)
icon.setImageDrawable(ContextCompat.getDrawable(context, typedValue.resourceId)) icon.setImageDrawable(ContextCompat.getDrawable(context, typedValue.resourceId))
} }
itemView.contentDescription = model.item.contentDescription
title.text = model.item.title title.text = model.item.title
itemView.setOnClickListener { itemView.setOnClickListener {
model.item.action.run() model.item.action.run()

View File

@ -781,7 +781,9 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
val recipient = viewModel.recipient ?: return val recipient = viewModel.recipient ?: return
if (!isShowingMentionCandidatesView) { if (!isShowingMentionCandidatesView) {
additionalContentContainer.removeAllViews() additionalContentContainer.removeAllViews()
val view = MentionCandidatesView(this) val view = MentionCandidatesView(this).apply {
contentDescription = context.getString(R.string.AccessibilityId_mentions_list)
}
view.glide = glide view.glide = glide
view.onCandidateSelected = { handleMentionSelected(it) } view.onCandidateSelected = { handleMentionSelected(it) }
additionalContentContainer.addView(view) additionalContentContainer.addView(view)
@ -958,7 +960,7 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
override fun block(deleteThread: Boolean) { override fun block(deleteThread: Boolean) {
val title = R.string.RecipientPreferenceActivity_block_this_contact_question val title = R.string.RecipientPreferenceActivity_block_this_contact_question
val message = R.string.RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact val message = R.string.RecipientPreferenceActivity_you_will_no_longer_receive_messages_and_calls_from_this_contact
AlertDialog.Builder(this) val dialog = AlertDialog.Builder(this)
.setTitle(title) .setTitle(title)
.setMessage(message) .setMessage(message)
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
@ -969,6 +971,8 @@ class ConversationActivityV2 : PassphraseRequiredActionBarActivity(), InputBarDe
finish() finish()
} }
}.show() }.show()
val button = dialog.getButton(DialogInterface.BUTTON_POSITIVE)
button.setContentDescription("Confirm block")
} }
override fun copySessionID(sessionId: String) { override fun copySessionID(sessionId: String) {

View File

@ -660,10 +660,14 @@ public final class ConversationReactionOverlay extends FrameLayout {
String userPublicKey = TextSecurePreferences.getLocalNumber(getContext()); String userPublicKey = TextSecurePreferences.getLocalNumber(getContext());
// Select message // Select message
items.add(new ActionItem(R.attr.menu_select_icon, getContext().getResources().getString(R.string.conversation_context__menu_select), () -> handleActionItemClicked(Action.SELECT))); items.add(new ActionItem(R.attr.menu_select_icon, getContext().getResources().getString(R.string.conversation_context__menu_select), () -> handleActionItemClicked(Action.SELECT),
getContext().getResources().getString(R.string.AccessibilityId_select)));
// Reply // Reply
if (!message.isPending() && !message.isFailed()) { if (!message.isPending() && !message.isFailed()) {
items.add(new ActionItem(R.attr.menu_reply_icon, getContext().getResources().getString(R.string.conversation_context__menu_reply), () -> handleActionItemClicked(Action.REPLY))); items.add(
new ActionItem(R.attr.menu_reply_icon, getContext().getResources().getString(R.string.conversation_context__menu_reply), () -> handleActionItemClicked(Action.REPLY),
getContext().getResources().getString(R.string.AccessibilityId_reply_message))
);
} }
// Copy message text // Copy message text
if (!containsControlMessage && hasText) { if (!containsControlMessage && hasText) {
@ -671,11 +675,17 @@ public final class ConversationReactionOverlay extends FrameLayout {
} }
// Copy Session ID // Copy Session ID
if (recipient.isGroupRecipient() && !recipient.isOpenGroupRecipient() && !message.getRecipient().getAddress().toString().equals(userPublicKey)) { if (recipient.isGroupRecipient() && !recipient.isOpenGroupRecipient() && !message.getRecipient().getAddress().toString().equals(userPublicKey)) {
items.add(new ActionItem(R.attr.menu_copy_icon, getContext().getResources().getString(R.string.activity_conversation_menu_copy_session_id), () -> handleActionItemClicked(Action.COPY_SESSION_ID))); items.add(new ActionItem(
R.attr.menu_copy_icon, getContext().getResources().getString(R.string.activity_conversation_menu_copy_session_id), () -> handleActionItemClicked(Action.COPY_SESSION_ID))
);
} }
// Delete message // Delete message
if (ConversationMenuItemHelper.userCanDeleteSelectedItems(getContext(), message, openGroup, userPublicKey, blindedPublicKey)) { if (ConversationMenuItemHelper.userCanDeleteSelectedItems(getContext(), message, openGroup, userPublicKey, blindedPublicKey)) {
items.add(new ActionItem(R.attr.menu_trash_icon, getContext().getResources().getString(R.string.delete), () -> handleActionItemClicked(Action.DELETE))); items.add(new ActionItem(R.attr.menu_trash_icon, getContext().getResources().getString(R.string.delete),
() -> handleActionItemClicked(Action.DELETE),
getContext().getResources().getString(R.string.AccessibilityId_delete_message)
)
);
} }
// Ban user // Ban user
if (ConversationMenuItemHelper.userCanBanSelectedUsers(getContext(), message, openGroup, userPublicKey, blindedPublicKey)) { if (ConversationMenuItemHelper.userCanBanSelectedUsers(getContext(), message, openGroup, userPublicKey, blindedPublicKey)) {
@ -695,7 +705,9 @@ public final class ConversationReactionOverlay extends FrameLayout {
} }
// Save media // Save media
if (message.isMms() && ((MediaMmsMessageRecord)message).containsMediaSlide()) { if (message.isMms() && ((MediaMmsMessageRecord)message).containsMediaSlide()) {
items.add(new ActionItem(R.attr.menu_save_icon, getContext().getResources().getString(R.string.conversation_context_image__save_attachment), () -> handleActionItemClicked(Action.DOWNLOAD))); items.add(new ActionItem(R.attr.menu_save_icon, getContext().getResources().getString(R.string.conversation_context_image__save_attachment), () -> handleActionItemClicked(Action.DOWNLOAD),
getContext().getResources().getString(R.string.AccessibilityId_save_attachment))
);
} }
backgroundView.setVisibility(View.VISIBLE); backgroundView.setVisibility(View.VISIBLE);

View File

@ -57,9 +57,9 @@ class InputBar : RelativeLayout, InputBarEditTextDelegate, QuoteViewDelegate, Li
val attachmentButtonsContainerHeight: Int val attachmentButtonsContainerHeight: Int
get() = binding.attachmentsButtonContainer.height get() = binding.attachmentsButtonContainer.height
private val attachmentsButton by lazy { InputBarButton(context, R.drawable.ic_plus_24) } private val attachmentsButton by lazy { InputBarButton(context, R.drawable.ic_plus_24).apply { contentDescription = context.getString(R.string.AccessibilityId_attachments_button)} }
private val microphoneButton by lazy { InputBarButton(context, R.drawable.ic_microphone) } private val microphoneButton by lazy { InputBarButton(context, R.drawable.ic_microphone).apply { contentDescription = context.getString(R.string.AccessibilityId_microphone_button)} }
private val sendButton by lazy { InputBarButton(context, R.drawable.ic_arrow_up, true) } private val sendButton by lazy { InputBarButton(context, R.drawable.ic_arrow_up, true).apply { contentDescription = context.getString(R.string.AccessibilityId_send_message_button)} }
// region Lifecycle // region Lifecycle
constructor(context: Context) : super(context) { initialize() } constructor(context: Context) : super(context) { initialize() }

View File

@ -7,6 +7,7 @@ import android.view.ViewGroup
import android.widget.BaseAdapter import android.widget.BaseAdapter
import android.widget.ListView import android.widget.ListView
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import network.loki.messenger.R
import org.session.libsession.messaging.mentions.Mention import org.session.libsession.messaging.mentions.Mention
import org.thoughtcrime.securesms.database.LokiThreadDatabase import org.thoughtcrime.securesms.database.LokiThreadDatabase
import org.thoughtcrime.securesms.mms.GlideRequests import org.thoughtcrime.securesms.mms.GlideRequests
@ -41,7 +42,9 @@ class MentionCandidatesView(context: Context, attrs: AttributeSet?, defStyleAttr
override fun getItem(position: Int): Mention { return candidates[position] } override fun getItem(position: Int): Mention { return candidates[position] }
override fun getView(position: Int, cellToBeReused: View?, parent: ViewGroup): View { override fun getView(position: Int, cellToBeReused: View?, parent: ViewGroup): View {
val cell = cellToBeReused as MentionCandidateView? ?: MentionCandidateView(context) val cell = cellToBeReused as MentionCandidateView? ?: MentionCandidateView(context).apply {
contentDescription = context.getString(R.string.AccessibilityId_contact)
}
val mentionCandidate = getItem(position) val mentionCandidate = getItem(position)
cell.glide = glide cell.glide = glide
cell.candidate = mentionCandidate cell.candidate = mentionCandidate

View File

@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.conversation.v2.menus
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.DialogInterface
import android.content.Intent import android.content.Intent
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.PorterDuff import android.graphics.PorterDuff
@ -185,7 +186,7 @@ object ConversationMenuHelper {
private fun call(context: Context, thread: Recipient) { private fun call(context: Context, thread: Recipient) {
if (!TextSecurePreferences.isCallNotificationsEnabled(context)) { if (!TextSecurePreferences.isCallNotificationsEnabled(context)) {
AlertDialog.Builder(context) val dialog = AlertDialog.Builder(context)
.setTitle(R.string.ConversationActivity_call_title) .setTitle(R.string.ConversationActivity_call_title)
.setMessage(R.string.ConversationActivity_call_prompt) .setMessage(R.string.ConversationActivity_call_prompt)
.setPositiveButton(R.string.activity_settings_title) { _, _ -> .setPositiveButton(R.string.activity_settings_title) { _, _ ->
@ -194,7 +195,10 @@ object ConversationMenuHelper {
} }
.setNeutralButton(R.string.cancel) { d, _ -> .setNeutralButton(R.string.cancel) { d, _ ->
d.dismiss() d.dismiss()
}.show() }.create()
dialog.getButton(DialogInterface.BUTTON_POSITIVE)?.contentDescription = context.getString(R.string.AccessibilityId_settings)
dialog.getButton(DialogInterface.BUTTON_NEGATIVE)?.contentDescription = context.getString(R.string.AccessibilityId_cancel_button)
dialog.show()
return return
} }

View File

@ -31,6 +31,7 @@ class ControlMessageView : LinearLayout {
binding.dateBreakTextView.showDateBreak(message, previous) binding.dateBreakTextView.showDateBreak(message, previous)
binding.iconImageView.visibility = View.GONE binding.iconImageView.visibility = View.GONE
var messageBody: CharSequence = message.getDisplayBody(context) var messageBody: CharSequence = message.getDisplayBody(context)
binding.root.contentDescription= null
when { when {
message.isExpirationTimerUpdate -> { message.isExpirationTimerUpdate -> {
binding.iconImageView.setImageDrawable( binding.iconImageView.setImageDrawable(
@ -46,6 +47,7 @@ class ControlMessageView : LinearLayout {
} }
message.isMessageRequestResponse -> { message.isMessageRequestResponse -> {
messageBody = context.getString(R.string.message_requests_accepted) messageBody = context.getString(R.string.message_requests_accepted)
binding.root.contentDescription=context.getString(R.string.AccessibilityId_message_request_config_message)
} }
message.isCallLog -> { message.isCallLog -> {
val drawable = when { val drawable = when {

View File

@ -13,6 +13,9 @@ import android.view.HapticFeedbackConstants
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
import androidx.annotation.ColorInt
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
@ -194,7 +197,7 @@ class VisibleMessageView : LinearLayout {
binding.dateBreakTextView.isVisible = showDateBreak binding.dateBreakTextView.isVisible = showDateBreak
// Message status indicator // Message status indicator
if (message.isOutgoing) { if (message.isOutgoing) {
val (iconID, iconColor, textId) = getMessageStatusImage(message) val (iconID, iconColor, textId, contentDescription) = getMessageStatusImage(message)
if (textId != null) { if (textId != null) {
binding.messageStatusTextView.setText(textId) binding.messageStatusTextView.setText(textId)
@ -209,6 +212,7 @@ class VisibleMessageView : LinearLayout {
} }
binding.messageStatusImageView.setImageDrawable(drawable) binding.messageStatusImageView.setImageDrawable(drawable)
} }
binding.messageStatusImageView.contentDescription = contentDescription
val lastMessageID = mmsSmsDb.getLastMessageID(message.threadId) val lastMessageID = mmsSmsDb.getLastMessageID(message.threadId)
binding.messageStatusTextView.isVisible = ( binding.messageStatusTextView.isVisible = (
@ -283,17 +287,43 @@ class VisibleMessageView : LinearLayout {
} }
} }
private fun getMessageStatusImage(message: MessageRecord): Triple<Int?,Int?,Int?> { data class MessageStatusInfo(@DrawableRes val iconId: Int?,
@ColorInt val iconTint: Int?,
@StringRes val messageText: Int?,
val contentDescription: String?)
private fun getMessageStatusImage(message: MessageRecord): MessageStatusInfo {
return when { return when {
!message.isOutgoing -> Triple(null, null, null) !message.isOutgoing -> MessageStatusInfo(null,
null,
null,
null)
message.isFailed -> message.isFailed ->
Triple(R.drawable.ic_delivery_status_failed, resources.getColor(R.color.destructive, context.theme), R.string.delivery_status_failed) MessageStatusInfo(
R.drawable.ic_delivery_status_failed,
resources.getColor(R.color.destructive, context.theme),
R.string.delivery_status_failed,
null
)
message.isPending -> message.isPending ->
Triple(R.drawable.ic_delivery_status_sending, context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_sending) MessageStatusInfo(
R.drawable.ic_delivery_status_sending,
context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_sending,
context.getString(R.string.AccessibilityId_message_sent_status_pending)
)
message.isRead -> message.isRead ->
Triple(R.drawable.ic_delivery_status_read, context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_read) MessageStatusInfo(
R.drawable.ic_delivery_status_read,
context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_read,
null
)
else -> else ->
Triple(R.drawable.ic_delivery_status_sent, context.getColorFromAttr(R.attr.message_status_color), R.string.delivery_status_sent) MessageStatusInfo(
R.drawable.ic_delivery_status_sent,
context.getColorFromAttr(R.attr.message_status_color),
R.string.delivery_status_sent,
context.getString(R.string.AccessibilityId_message_sent_status_tick)
)
} }
} }

View File

@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.permissions;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
@ -12,6 +13,7 @@ import android.util.DisplayMetrics;
import android.view.Display; import android.view.Display;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.Button;
import androidx.annotation.DrawableRes; import androidx.annotation.DrawableRes;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -162,12 +164,13 @@ public class Permissions {
@SuppressWarnings("ConstantConditions") @SuppressWarnings("ConstantConditions")
private void executePermissionsRequestWithRationale(PermissionsRequest request) { private void executePermissionsRequestWithRationale(PermissionsRequest request) {
RationaleDialog.createFor(permissionObject.getContext(), rationaleDialogMessage, rationalDialogHeader) AlertDialog dialog = RationaleDialog.createFor(permissionObject.getContext(), rationaleDialogMessage, rationalDialogHeader)
.setPositiveButton(R.string.Permissions_continue, (dialog, which) -> executePermissionsRequest(request)) .setPositiveButton(R.string.Permissions_continue, (d, which) -> executePermissionsRequest(request))
.setNegativeButton(R.string.Permissions_not_now, (dialog, which) -> executeNoPermissionsRequest(request)) .setNegativeButton(R.string.Permissions_not_now, (d, which) -> executeNoPermissionsRequest(request))
.show() .show();
.getWindow() dialog.getWindow().setLayout((int)(permissionObject.getWindowWidth() * .75), ViewGroup.LayoutParams.WRAP_CONTENT);
.setLayout((int)(permissionObject.getWindowWidth() * .75), ViewGroup.LayoutParams.WRAP_CONTENT); Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
positiveButton.setContentDescription("Continue");
} }
private void executePermissionsRequest(PermissionsRequest request) { private void executePermissionsRequest(PermissionsRequest request) {
@ -353,12 +356,17 @@ public class Permissions {
Context context = this.context.get(); Context context = this.context.get();
if (context != null) { if (context != null) {
new AlertDialog.Builder(context, R.style.ThemeOverlay_Session_AlertDialog) AlertDialog alertDialog = new AlertDialog.Builder(context, R.style.ThemeOverlay_Session_AlertDialog)
.setTitle(R.string.Permissions_permission_required) .setTitle(R.string.Permissions_permission_required)
.setMessage(message) .setMessage(message)
.setPositiveButton(R.string.Permissions_continue, (dialog, which) -> context.startActivity(getApplicationSettingsIntent(context))) .setPositiveButton(R.string.Permissions_continue, (dialog, which) -> context.startActivity(getApplicationSettingsIntent(context)))
.setNegativeButton(android.R.string.cancel, null) .setNegativeButton(android.R.string.cancel, null)
.show(); .create();
Button positiveButton = alertDialog.getButton(DialogInterface.BUTTON_POSITIVE);
if (positiveButton != null) {
positiveButton.setContentDescription(context.getString(R.string.AccessibilityId_continue));
}
alertDialog.show();
} }
} }
} }

View File

@ -5,10 +5,12 @@ import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.KeyguardManager; import android.app.KeyguardManager;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings; import android.provider.Settings;
import android.widget.Button;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
@ -179,7 +181,7 @@ public class PrivacySettingsPreferenceFragment extends ListSummaryPreferenceFrag
boolean val = (boolean) newValue; boolean val = (boolean) newValue;
if (val) { if (val) {
// check if we've shown the info dialog and check for microphone permissions // check if we've shown the info dialog and check for microphone permissions
new AlertDialog.Builder(new ContextThemeWrapper(context.requireContext(), R.style.ThemeOverlay_Session_AlertDialog)) AlertDialog dialog = new AlertDialog.Builder(new ContextThemeWrapper(context.requireContext(), R.style.ThemeOverlay_Session_AlertDialog))
.setTitle(R.string.dialog_voice_video_title) .setTitle(R.string.dialog_voice_video_title)
.setMessage(R.string.dialog_voice_video_message) .setMessage(R.string.dialog_voice_video_message)
.setPositiveButton(R.string.dialog_link_preview_enable_button_title, (d, w) -> { .setPositiveButton(R.string.dialog_link_preview_enable_button_title, (d, w) -> {
@ -189,7 +191,9 @@ public class PrivacySettingsPreferenceFragment extends ListSummaryPreferenceFrag
}) })
.show(); .show();
return false; Button positiveButton = dialog.getButton(DialogInterface.BUTTON_POSITIVE);
positiveButton.setContentDescription("Enable");
return false;
} else { } else {
return true; return true;
} }

View File

@ -33,6 +33,7 @@
<EditText <EditText
style="@style/SessionEditText" style="@style/SessionEditText"
android:id="@+id/displayNameEditText" android:id="@+id/displayNameEditText"
android:contentDescription="@string/AccessibilityId_enter_display_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginLeft="@dimen/very_large_spacing"
@ -52,6 +53,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -32,6 +32,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_create_session_id"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
@ -42,6 +43,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:id="@+id/restoreButton" android:id="@+id/restoreButton"
android:contentDescription="@string/AccessibilityId_restore_your_session"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"
@ -51,6 +53,7 @@
<Button <Button
android:id="@+id/linkButton" android:id="@+id/linkButton"
android:contentDescription="@string/AccessibilityId_link_a_device"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/onboarding_button_bottom_offset" android:layout_height="@dimen/onboarding_button_bottom_offset"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -19,6 +19,7 @@
android:textSize="@dimen/very_large_font_size" android:textSize="@dimen/very_large_font_size"
android:textStyle="bold" android:textStyle="bold"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:contentDescription="@string/AccessibilityId_message_notifications"
android:text="@string/activity_pn_mode_message_notifications" /> android:text="@string/activity_pn_mode_message_notifications" />
<TextView <TextView
@ -32,6 +33,7 @@
android:text="@string/activity_pn_mode_explanation" /> android:text="@string/activity_pn_mode_explanation" />
<org.thoughtcrime.securesms.util.PNModeView <org.thoughtcrime.securesms.util.PNModeView
android:contentDescription="@string/AccessibilityId_fast_mode_notifications_option"
android:id="@+id/fcmOptionView" android:id="@+id/fcmOptionView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -70,6 +72,7 @@
</org.thoughtcrime.securesms.util.PNModeView> </org.thoughtcrime.securesms.util.PNModeView>
<org.thoughtcrime.securesms.util.PNModeView <org.thoughtcrime.securesms.util.PNModeView
android:contentDescription="@string/AccessibilityId_slow_mode_notifications_option"
android:id="@+id/backgroundPollingOptionView" android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -86,7 +89,8 @@
android:textSize="@dimen/medium_font_size" android:textSize="@dimen/medium_font_size"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:textStyle="bold" android:textStyle="bold"
android:text="@string/activity_pn_mode_slow_mode" /> android:text="@string/activity_pn_mode_slow_mode"
/>
<TextView <TextView
android:layout_width="match_parent" android:layout_width="match_parent"
@ -101,6 +105,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:contentDescription="@string/AccessibilityId_continue_message_notifications"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -34,6 +34,7 @@
<EditText <EditText
style="@style/SessionEditText" style="@style/SessionEditText"
android:id="@+id/mnemonicEditText" android:id="@+id/mnemonicEditText"
android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginLeft="@dimen/very_large_spacing"
@ -54,6 +55,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/restoreButton" android:id="@+id/restoreButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -33,6 +33,7 @@
<TextView <TextView
style="@style/SessionIDTextView" style="@style/SessionIDTextView"
android:contentDescription="@string/AccessibilityId_session_id"
android:id="@+id/publicKeyTextView" android:id="@+id/publicKeyTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -49,6 +50,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -39,6 +39,7 @@
<TextView <TextView
style="@style/SessionIDTextView" style="@style/SessionIDTextView"
android:id="@+id/seedTextView" android:id="@+id/seedTextView"
android:contentDescription="@string/AccessibilityId_recovery_phrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginLeft="@dimen/very_large_spacing"
@ -67,6 +68,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_copy_recovery_phrase"
android:id="@+id/copyButton" android:id="@+id/copyButton"
android:layout_width="196dp" android:layout_width="196dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -33,6 +33,7 @@
<EditText <EditText
style="@style/SessionEditText" style="@style/SessionEditText"
android:id="@+id/mnemonicEditText" android:id="@+id/mnemonicEditText"
android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginLeft="@dimen/very_large_spacing"
@ -53,6 +54,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:id="@+id/continueButton" android:id="@+id/continueButton"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginLeft="@dimen/massive_spacing"

View File

@ -59,6 +59,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:id="@+id/button" android:id="@+id/button"
android:contentDescription="@string/AccessibilityId_continue"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="28dp"
android:layout_marginLeft="4dp" android:layout_marginLeft="4dp"

View File

@ -89,6 +89,7 @@
android:id="@+id/gifButtonContainer" android:id="@+id/gifButtonContainer"
android:layout_width="@dimen/input_bar_button_expanded_size" android:layout_width="@dimen/input_bar_button_expanded_size"
android:layout_height="@dimen/input_bar_button_expanded_size" android:layout_height="@dimen/input_bar_button_expanded_size"
android:contentDescription="@string/AccessibilityId_gif_button"
android:alpha="0" /> android:alpha="0" />
<RelativeLayout <RelativeLayout
@ -96,6 +97,7 @@
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_width="@dimen/input_bar_button_expanded_size" android:layout_width="@dimen/input_bar_button_expanded_size"
android:layout_height="@dimen/input_bar_button_expanded_size" android:layout_height="@dimen/input_bar_button_expanded_size"
android:contentDescription="@string/AccessibilityId_documents_folder"
android:alpha="0" /> android:alpha="0" />
<RelativeLayout <RelativeLayout
@ -103,6 +105,7 @@
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_width="@dimen/input_bar_button_expanded_size" android:layout_width="@dimen/input_bar_button_expanded_size"
android:layout_height="@dimen/input_bar_button_expanded_size" android:layout_height="@dimen/input_bar_button_expanded_size"
android:contentDescription="@string/AccessibilityId_images_folder"
android:alpha="0" /> android:alpha="0" />
<RelativeLayout <RelativeLayout
@ -110,6 +113,7 @@
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:layout_width="@dimen/input_bar_button_expanded_size" android:layout_width="@dimen/input_bar_button_expanded_size"
android:layout_height="@dimen/input_bar_button_expanded_size" android:layout_height="@dimen/input_bar_button_expanded_size"
android:contentDescription="@string/AccessibilityId_select_camera_button"
android:alpha="0" /> android:alpha="0" />
</LinearLayout> </LinearLayout>
@ -176,6 +180,7 @@
<RelativeLayout <RelativeLayout
android:id="@+id/blockedBanner" android:id="@+id/blockedBanner"
android:contentDescription="@string/AccessibilityId_blocked_banner"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/toolbar" android:layout_below="@+id/toolbar"
@ -185,6 +190,7 @@
<TextView <TextView
android:id="@+id/blockedBannerTextView" android:id="@+id/blockedBannerTextView"
android:contentDescription="@string/AccessibilityId_blocked_banner_text"
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"
@ -208,14 +214,15 @@
<TextView <TextView
android:id="@+id/messageRequestBlock" android:id="@+id/messageRequestBlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:contentDescription="@string/AccessibilityId_block_message_request_button"
android:textColor="@color/destructive" android:textColor="@color/destructive"
android:paddingHorizontal="@dimen/massive_spacing" android:paddingHorizontal="@dimen/massive_spacing"
android:paddingVertical="@dimen/small_spacing" android:paddingVertical="@dimen/small_spacing"
android:textSize="@dimen/text_size" android:textSize="@dimen/text_size"
android:text="@string/activity_conversation_block_user" android:text="@string/activity_conversation_block_user"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView <TextView
android:id="@+id/sendAcceptsTextView" android:id="@+id/sendAcceptsTextView"
@ -237,6 +244,7 @@
<Button <Button
android:id="@+id/acceptMessageRequestButton" android:id="@+id/acceptMessageRequestButton"
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_accept_message_request_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_weight="1" android:layout_weight="1"
@ -245,6 +253,7 @@
<Button <Button
android:id="@+id/declineMessageRequestButton" android:id="@+id/declineMessageRequestButton"
style="@style/Widget.Session.Button.Common.DestructiveOutline" style="@style/Widget.Session.Button.Common.DestructiveOutline"
android:contentDescription="@string/AccessibilityId_decline_message_request_button"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginStart="@dimen/medium_spacing" android:layout_marginStart="@dimen/medium_spacing"

View File

@ -23,6 +23,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:contentDescription="@string/AccessibilityId_username"
tools:text="@tools:sample/full_names" tools:text="@tools:sample/full_names"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:textStyle="bold" android:textStyle="bold"

View File

@ -32,6 +32,7 @@
<EditText <EditText
style="@style/SmallSessionEditText" style="@style/SmallSessionEditText"
android:contentDescription="@string/AccessibilityId_enter_display_name"
android:id="@+id/displayNameEditText" android:id="@+id/displayNameEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
@ -51,6 +52,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_continue"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -32,6 +32,7 @@
android:id="@+id/btnCancelGroupNameEdit" android:id="@+id/btnCancelGroupNameEdit"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:contentDescription="@string/AccessibilityId_cancel_name_change"
android:src="@drawable/ic_baseline_clear_24"/> android:src="@drawable/ic_baseline_clear_24"/>
<EditText <EditText
@ -48,6 +49,7 @@
android:inputType="text" android:inputType="text"
android:singleLine="true" android:singleLine="true"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:contentDescription="@string/AccessibilityId_group_name"
android:hint="@string/activity_edit_closed_group_edit_text_hint" /> android:hint="@string/activity_edit_closed_group_edit_text_hint" />
<ImageView <ImageView
@ -55,6 +57,7 @@
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_gravity="center" android:layout_gravity="center"
android:contentDescription="@string/AccessibilityId_accept_name_change"
android:src="@drawable/ic_baseline_done_24"/> android:src="@drawable/ic_baseline_done_24"/>
</LinearLayout> </LinearLayout>
@ -72,6 +75,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:contentDescription="@string/AccessibilityId_group_name"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:textSize="@dimen/very_large_font_size" android:textSize="@dimen/very_large_font_size"
android:textStyle="bold" android:textStyle="bold"
@ -113,10 +117,10 @@
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_marginTop="@dimen/small_spacing" android:layout_marginVertical="@dimen/small_spacing"
android:layout_marginEnd="@dimen/medium_spacing" android:layout_marginEnd="@dimen/medium_spacing"
android:layout_marginStart="@dimen/small_spacing" android:layout_marginStart="@dimen/small_spacing"
android:layout_marginBottom="@dimen/small_spacing" android:contentDescription="@string/AccessibilityId_add_members"
android:paddingStart="@dimen/medium_spacing" android:paddingStart="@dimen/medium_spacing"
android:paddingEnd="@dimen/medium_spacing" android:paddingEnd="@dimen/medium_spacing"
android:text="@string/activity_edit_closed_group_add_members" /> android:text="@string/activity_edit_closed_group_add_members" />

View File

@ -33,7 +33,8 @@
android:layout_height="@dimen/small_profile_picture_size" android:layout_height="@dimen/small_profile_picture_size"
android:layout_alignParentLeft="true" android:layout_alignParentLeft="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="9dp" /> android:layout_marginLeft="9dp"
android:contentDescription="@string/AccessibilityId_user_settings" />
<org.thoughtcrime.securesms.home.PathStatusView <org.thoughtcrime.securesms.home.PathStatusView
android:id="@+id/pathStatusView" android:id="@+id/pathStatusView"
@ -55,6 +56,7 @@
<RelativeLayout <RelativeLayout
android:id="@+id/searchViewContainer" android:id="@+id/searchViewContainer"
android:contentDescription="@string/AccessibilityId_search_icon"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
android:layout_height="@dimen/small_profile_picture_size" android:layout_height="@dimen/small_profile_picture_size"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
@ -154,6 +156,7 @@
<com.google.android.material.floatingactionbutton.FloatingActionButton <com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/newConversationButton" android:id="@+id/newConversationButton"
android:contentDescription="@string/AccessibilityId_new_conversation_button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"

View File

@ -32,6 +32,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_create_session_id"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
@ -41,6 +42,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_restore_your_session"
android:id="@+id/restoreButton" android:id="@+id/restoreButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
@ -50,11 +52,11 @@
android:text="@string/activity_landing_restore_button_title" /> android:text="@string/activity_landing_restore_button_title" />
<Button <Button
android:contentDescription="@string/AccessibilityId_link_a_device"
android:id="@+id/linkButton" android:id="@+id/linkButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/onboarding_button_bottom_offset" android:layout_height="@dimen/onboarding_button_bottom_offset"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginHorizontal="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:gravity="center" android:gravity="center"
android:background="@color/transparent" android:background="@color/transparent"
android:textAllCaps="false" android:textAllCaps="false"

View File

@ -20,9 +20,9 @@
</androidx.viewpager.widget.ViewPager> </androidx.viewpager.widget.ViewPager>
<FrameLayout <FrameLayout
android:animateLayoutChanges="true"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:animateLayoutChanges="true">
<RelativeLayout <RelativeLayout
android:id="@+id/loader" android:id="@+id/loader"
@ -35,8 +35,8 @@
style="@style/SpinKitView.Large.ThreeBounce" style="@style/SpinKitView.Large.ThreeBounce"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_centerInParent="true" android:layout_centerInParent="true"
android:layout_marginTop="8dp"
app:SpinKit_Color="@android:color/white" /> app:SpinKit_Color="@android:color/white" />
</RelativeLayout> </RelativeLayout>

View File

@ -39,6 +39,7 @@
android:visibility="gone"> android:visibility="gone">
<TextView <TextView
android:contentDescription="@string/AccessibilityId_empty_message_request_folder"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="@string/message_request_empty_state_message" android:text="@string/message_request_empty_state_message"
@ -48,6 +49,7 @@
</LinearLayout> </LinearLayout>
<Button <Button
android:contentDescription="@string/AccessibilityId_clear_all_message_requests"
android:id="@+id/clearAllMessageRequestsButton" android:id="@+id/clearAllMessageRequestsButton"
style="@style/Widget.Session.Button.Common.DestructiveOutline" style="@style/Widget.Session.Button.Common.DestructiveOutline"
android:layout_width="196dp" android:layout_width="196dp"

View File

@ -19,6 +19,7 @@
android:textSize="@dimen/large_font_size" android:textSize="@dimen/large_font_size"
android:textStyle="bold" android:textStyle="bold"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:contentDescription="@string/AccessibilityId_message_notifications"
android:text="@string/activity_pn_mode_message_notifications" /> android:text="@string/activity_pn_mode_message_notifications" />
<TextView <TextView
@ -32,6 +33,7 @@
android:text="@string/activity_pn_mode_explanation" /> android:text="@string/activity_pn_mode_explanation" />
<org.thoughtcrime.securesms.util.PNModeView <org.thoughtcrime.securesms.util.PNModeView
android:contentDescription="@string/AccessibilityId_fast_mode_notifications_option"
android:id="@+id/fcmOptionView" android:id="@+id/fcmOptionView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -70,6 +72,7 @@
</org.thoughtcrime.securesms.util.PNModeView> </org.thoughtcrime.securesms.util.PNModeView>
<org.thoughtcrime.securesms.util.PNModeView <org.thoughtcrime.securesms.util.PNModeView
android:contentDescription="@string/AccessibilityId_slow_mode_notifications_option"
android:id="@+id/backgroundPollingOptionView" android:id="@+id/backgroundPollingOptionView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -100,6 +103,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_continue_message_notifications"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -32,19 +32,20 @@
android:text="@string/activity_restore_explanation" /> android:text="@string/activity_restore_explanation" />
<EditText <EditText
style="@style/SmallSessionEditText"
android:id="@+id/mnemonicEditText" android:id="@+id/mnemonicEditText"
style="@style/SmallSessionEditText"
android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginLeft="@dimen/very_large_spacing"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginRight="@dimen/very_large_spacing" android:layout_marginRight="@dimen/very_large_spacing"
android:paddingTop="0dp"
android:paddingBottom="0dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:hint="@string/activity_restore_seed_edit_text_hint"
android:inputType="textMultiLine" android:inputType="textMultiLine"
android:maxLines="3" android:maxLines="3"
android:hint="@string/activity_restore_seed_edit_text_hint" /> android:paddingTop="0dp"
android:paddingBottom="0dp" />
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
@ -53,6 +54,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_continue"
android:id="@+id/restoreButton" android:id="@+id/restoreButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -33,6 +33,7 @@
<TextView <TextView
style="@style/SessionIDTextView" style="@style/SessionIDTextView"
android:contentDescription="@string/AccessibilityId_session_id"
android:id="@+id/publicKeyTextView" android:id="@+id/publicKeyTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -49,6 +50,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentFilled" style="@style/Widget.Session.Button.Common.ProminentFilled"
android:contentDescription="@string/AccessibilityId_continue"
android:id="@+id/registerButton" android:id="@+id/registerButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
@ -58,6 +60,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_copy_session_id"
android:id="@+id/copyButton" android:id="@+id/copyButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -38,6 +38,7 @@
<TextView <TextView
style="@style/SessionIDTextView" style="@style/SessionIDTextView"
android:contentDescription="@string/AccessibilityId_recovery_phrase"
android:id="@+id/seedTextView" android:id="@+id/seedTextView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -68,6 +69,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_copy_recovery_phrase"
android:id="@+id/copyButton" android:id="@+id/copyButton"
android:layout_width="196dp" android:layout_width="196dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"

View File

@ -25,10 +25,12 @@
android:id="@+id/profilePictureView" android:id="@+id/profilePictureView"
android:layout_width="@dimen/large_profile_picture_size" android:layout_width="@dimen/large_profile_picture_size"
android:layout_height="@dimen/large_profile_picture_size" android:layout_height="@dimen/large_profile_picture_size"
android:layout_marginTop="@dimen/medium_spacing" /> android:layout_marginTop="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_profile_picture" />
<RelativeLayout <RelativeLayout
android:id="@+id/ctnGroupNameSection" android:id="@+id/ctnGroupNameSection"
android:contentDescription="@string/AccessibilityId_username"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/large_spacing" android:layout_marginLeft="@dimen/large_spacing"
@ -36,12 +38,12 @@
android:layout_marginRight="@dimen/large_spacing"> android:layout_marginRight="@dimen/large_spacing">
<EditText <EditText
style="@style/SessionEditText"
android:id="@+id/displayNameEditText" android:id="@+id/displayNameEditText"
style="@style/SessionEditText"
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:textAlignment="center" android:contentDescription="@string/AccessibilityId_username"
android:paddingTop="12dp" android:paddingTop="12dp"
android:paddingBottom="12dp" android:paddingBottom="12dp"
android:visibility="invisible" android:visibility="invisible"
@ -52,6 +54,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_username"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:textSize="@dimen/very_large_font_size" android:textSize="@dimen/very_large_font_size"
android:textStyle="bold" /> android:textStyle="bold" />
@ -77,6 +80,7 @@
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:fontFamily="@font/space_mono_regular" android:fontFamily="@font/space_mono_regular"
android:textAlignment="center" android:textAlignment="center"
android:contentDescription="@string/AccessibilityId_session_id"
tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" />
<LinearLayout <LinearLayout
@ -188,7 +192,8 @@
android:id="@+id/notificationsButton" android:id="@+id/notificationsButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_notifications">
<ImageView <ImageView
android:id="@+id/notificationsContainer" android:id="@+id/notificationsContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -208,7 +213,8 @@
android:textStyle="bold" android:textStyle="bold"
android:gravity="center" android:gravity="center"
android:layout_toEndOf="@+id/notificationsContainer" android:layout_toEndOf="@+id/notificationsContainer"
android:text="@string/activity_settings_notifications_button_title" /> android:text="@string/activity_settings_notifications_button_title"
/>
</RelativeLayout> </RelativeLayout>
@ -222,7 +228,9 @@
android:id="@+id/chatsButton" android:id="@+id/chatsButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_conversations">
<ImageView <ImageView
android:id="@+id/chatsContainer" android:id="@+id/chatsContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -255,7 +263,8 @@
android:id="@+id/messageRequestsButton" android:id="@+id/messageRequestsButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_message_requests">
<ImageView <ImageView
android:id="@+id/messageRequestsContainer" android:id="@+id/messageRequestsContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -288,7 +297,8 @@
android:id="@+id/appearanceButton" android:id="@+id/appearanceButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_appearance">
<ImageView <ImageView
android:id="@+id/appearanceContainer" android:id="@+id/appearanceContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -321,7 +331,8 @@
android:id="@+id/inviteFriendButton" android:id="@+id/inviteFriendButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_invite_friend">
<ImageView <ImageView
android:id="@+id/inviteFriendContainer" android:id="@+id/inviteFriendContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -354,7 +365,8 @@
android:id="@+id/seedButton" android:id="@+id/seedButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_recovery_phrase">
<ImageView <ImageView
android:id="@+id/seedContainer" android:id="@+id/seedContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -387,7 +399,8 @@
android:id="@+id/helpButton" android:id="@+id/helpButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_help">
<ImageView <ImageView
android:id="@+id/helpContainer" android:id="@+id/helpContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"
@ -420,7 +433,8 @@
android:id="@+id/clearAllDataButton" android:id="@+id/clearAllDataButton"
android:paddingHorizontal="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"> android:layout_height="@dimen/setting_button_height"
android:contentDescription="@string/AccessibilityId_clear_data">
<ImageView <ImageView
android:id="@+id/clearContainer" android:id="@+id/clearContainer"
android:layout_width="@dimen/small_profile_picture_size" android:layout_width="@dimen/small_profile_picture_size"

View File

@ -16,6 +16,7 @@
/> />
<TextView <TextView
android:contentDescription="@string/AccessibilityId_contact"
android:textSize="@dimen/text_size" android:textSize="@dimen/text_size"
android:textStyle="bold" android:textStyle="bold"
android:layout_width="0dp" android:layout_width="0dp"

View File

@ -5,6 +5,7 @@
android:layout_marginVertical="@dimen/medium_spacing" android:layout_marginVertical="@dimen/medium_spacing"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <TextView
android:contentDescription="@string/AccessibilityId_blocked_contacts"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/medium_spacing" android:padding="@dimen/medium_spacing"

View File

@ -32,6 +32,7 @@
android:layout_marginStart="6dp" android:layout_marginStart="6dp"
android:layout_width="12dp" android:layout_width="12dp"
android:layout_height="12dp" android:layout_height="12dp"
android:contentDescription="@string/AccessibilityId_timer_icon"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible"/> tools:visibility="visible"/>

View File

@ -45,6 +45,7 @@
<Button <Button
style="@style/Widget.Session.Button.Dialog.Unimportant" style="@style/Widget.Session.Button.Dialog.Unimportant"
android:id="@+id/unblockButton" android:id="@+id/unblockButton"
android:contentDescription="@string/AccessibilityId_block_confirm"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_weight="1" android:layout_weight="1"

View File

@ -40,6 +40,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_weight="1" android:layout_weight="1"
android:contentDescription="@string/AccessibilityId_dont_download_media"
android:text="@string/cancel" /> android:text="@string/cancel" />
<Button <Button
@ -49,6 +50,7 @@
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="@dimen/medium_spacing" android:layout_marginStart="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_download_media"
android:text="@string/dialog_download_button_title" /> android:text="@string/dialog_download_button_title" />
</LinearLayout> </LinearLayout>

View File

@ -40,7 +40,8 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_weight="1" android:layout_weight="1"
android:text="@string/cancel" /> android:text="@string/cancel"
android:contentDescription="@string/AccessibilityId_cancel_link_preview_button"/>
<Button <Button
style="@style/Widget.Session.Button.Dialog.Unimportant" style="@style/Widget.Session.Button.Dialog.Unimportant"
@ -49,7 +50,10 @@
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
android:layout_weight="1" android:layout_weight="1"
android:layout_marginStart="@dimen/medium_spacing" android:layout_marginStart="@dimen/medium_spacing"
android:text="@string/dialog_link_preview_enable_button_title" /> android:text="@string/dialog_link_preview_enable_button_title"
android:contentDescription="@string/AccessibilityId_enable_link_preview_button"
/>
</LinearLayout> </LinearLayout>

View File

@ -28,6 +28,7 @@
<TextView <TextView
style="@style/SessionIDTextView" style="@style/SessionIDTextView"
android:contentDescription="@string/AccessibilityId_recovery_phrase"
android:id="@+id/seedTextView" android:id="@+id/seedTextView"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -46,6 +47,7 @@
<Button <Button
style="@style/Widget.Session.Button.Dialog.UnimportantText" style="@style/Widget.Session.Button.Dialog.UnimportantText"
android:contentDescription="@string/AccessibilityId_cancel_button"
android:id="@+id/copyButton" android:id="@+id/copyButton"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"
@ -55,6 +57,7 @@
<Button <Button
style="@style/Widget.Session.Button.Dialog.UnimportantText" style="@style/Widget.Session.Button.Dialog.UnimportantText"
android:contentDescription="@string/AccessibilityId_copy_recovery_phrase"
android:id="@+id/closeButton" android:id="@+id/closeButton"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="@dimen/small_button_height" android:layout_height="@dimen/small_button_height"

View File

@ -12,6 +12,7 @@
<cn.carbswang.android.numberpickerview.library.NumberPickerView <cn.carbswang.android.numberpickerview.library.NumberPickerView
android:id="@+id/expiration_number_picker" android:id="@+id/expiration_number_picker"
android:contentDescription="@string/AccessibilityId_disappearing_messages_time_picker"
android:layout_alignParentTop="true" android:layout_alignParentTop="true"
app:npv_WrapSelectorWheel="false" app:npv_WrapSelectorWheel="false"
app:npv_DividerColor="#cbc8ea" app:npv_DividerColor="#cbc8ea"

View File

@ -12,6 +12,7 @@
<TextView <TextView
android:id="@+id/detailsTextView" android:id="@+id/detailsTextView"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:contentDescription="@string/AccessibilityId_details"
android:drawableStart="@drawable/ic_info_outline_white_24dp" android:drawableStart="@drawable/ic_info_outline_white_24dp"
android:drawableTint="?attr/colorControlNormal" android:drawableTint="?attr/colorControlNormal"
android:text="@string/details" /> android:text="@string/details" />
@ -35,6 +36,7 @@
<TextView <TextView
android:id="@+id/pinTextView" android:id="@+id/pinTextView"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:contentDescription="@string/AccessibilityId_pin"
android:drawableStart="?attr/menu_pin_icon" android:drawableStart="?attr/menu_pin_icon"
android:text="@string/conversation_pin" android:text="@string/conversation_pin"
android:visibility="gone" android:visibility="gone"
@ -51,6 +53,7 @@
<TextView <TextView
android:id="@+id/blockTextView" android:id="@+id/blockTextView"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:contentDescription="@string/AccessibilityId_block"
android:drawableStart="?attr/menu_block_icon" android:drawableStart="?attr/menu_block_icon"
android:text="@string/RecipientPreferenceActivity_block" android:text="@string/RecipientPreferenceActivity_block"
android:visibility="gone" android:visibility="gone"
@ -67,6 +70,7 @@
<TextView <TextView
android:id="@+id/muteNotificationsTextView" android:id="@+id/muteNotificationsTextView"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:contentDescription="@string/AccessibilityId_mute_notifications"
android:drawableStart="@drawable/ic_outline_notifications_off_24" android:drawableStart="@drawable/ic_outline_notifications_off_24"
android:text="@string/MuteDialog_mute_notifications" android:text="@string/MuteDialog_mute_notifications"
tools:visibility="visible" tools:visibility="visible"
@ -102,6 +106,7 @@
<TextView <TextView
android:id="@+id/deleteTextView" android:id="@+id/deleteTextView"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:contentDescription="@string/AccessibilityId_delete"
android:drawableStart="?attr/menu_trash_icon" android:drawableStart="?attr/menu_trash_icon"
android:text="@string/delete" /> android:text="@string/delete" />

View File

@ -56,6 +56,7 @@
android:layout_marginTop="@dimen/medium_spacing" android:layout_marginTop="@dimen/medium_spacing"
android:layout_marginRight="@dimen/large_spacing" android:layout_marginRight="@dimen/large_spacing"
android:layout_marginBottom="@dimen/medium_spacing" android:layout_marginBottom="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_group_name_input"
android:hint="@string/activity_create_closed_group_edit_text_hint" android:hint="@string/activity_create_closed_group_edit_text_hint"
android:maxLength="30" android:maxLength="30"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -102,6 +103,7 @@
android:layout_width="196dp" android:layout_width="196dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginVertical="@dimen/large_spacing" android:layout_marginVertical="@dimen/large_spacing"
android:contentDescription="@string/AccessibilityId_create_group"
android:text="@string/activity_create_group_create_button_title" android:text="@string/activity_create_group_create_button_title"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"

View File

@ -11,18 +11,21 @@
<TextView <TextView
android:id="@+id/deleteForMeTextView" android:id="@+id/deleteForMeTextView"
android:contentDescription="@string/AccessibilityId_delete_just_for_me"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:text="@string/delete_message_for_me" android:text="@string/delete_message_for_me"
android:textColor="@color/destructive"/> android:textColor="@color/destructive"/>
<TextView <TextView
android:id="@+id/deleteForEveryoneTextView" android:id="@+id/deleteForEveryoneTextView"
android:contentDescription="@string/delete_message_for_everyone"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:text="@string/delete_message_for_everyone" android:text="@string/delete_message_for_everyone"
android:textColor="@color/destructive"/> android:textColor="@color/destructive"/>
<TextView <TextView
android:id="@+id/cancelTextView" android:id="@+id/cancelTextView"
android:contentDescription="@string/AccessibilityId_cancel_deletion"
style="@style/BottomSheetActionItem" style="@style/BottomSheetActionItem"
android:text="@string/cancel" /> android:text="@string/cancel" />

View File

@ -33,6 +33,7 @@
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginHorizontal="@dimen/large_spacing" android:layout_marginHorizontal="@dimen/large_spacing"
android:layout_marginTop="@dimen/large_spacing" android:layout_marginTop="@dimen/large_spacing"
android:contentDescription="@string/AccessibilityId_session_id_input"
android:gravity="center_vertical" android:gravity="center_vertical"
android:hint="@string/fragment_enter_public_key_edit_text_hint" android:hint="@string/fragment_enter_public_key_edit_text_hint"
android:imeOptions="actionDone" android:imeOptions="actionDone"
@ -131,6 +132,7 @@
android:layout_width="196dp" android:layout_width="196dp"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginVertical="@dimen/medium_spacing" android:layout_marginVertical="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_next"
android:text="@string/next" android:text="@string/next"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"

View File

@ -59,6 +59,7 @@
<TextView <TextView
android:id="@+id/createPrivateChatButton" android:id="@+id/createPrivateChatButton"
android:contentDescription="@string/AccessibilityId_new_direct_message"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height" android:layout_height="@dimen/setting_button_height"
android:drawablePadding="@dimen/large_spacing" android:drawablePadding="@dimen/large_spacing"
@ -84,6 +85,7 @@
<TextView <TextView
android:id="@+id/createClosedGroupButton" android:id="@+id/createClosedGroupButton"
android:contentDescription="@string/AccessibilityId_create_group"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height" android:layout_height="@dimen/setting_button_height"
android:drawablePadding="@dimen/large_spacing" android:drawablePadding="@dimen/large_spacing"
@ -109,6 +111,7 @@
<TextView <TextView
android:id="@+id/joinCommunityButton" android:id="@+id/joinCommunityButton"
android:contentDescription="@string/AccessibilityId_join_community"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height" android:layout_height="@dimen/setting_button_height"
android:drawablePadding="@dimen/large_spacing" android:drawablePadding="@dimen/large_spacing"

View File

@ -35,9 +35,9 @@
android:id="@+id/mnemonicEditText" android:id="@+id/mnemonicEditText"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:layout_marginLeft="@dimen/very_large_spacing" android:layout_marginHorizontal="@dimen/very_large_spacing"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:layout_marginRight="@dimen/very_large_spacing" android:contentDescription="@string/AccessibilityId_enter_your_recovery_phrase"
android:paddingTop="0dp" android:paddingTop="0dp"
android:paddingBottom="0dp" android:paddingBottom="0dp"
android:gravity="center_vertical" android:gravity="center_vertical"
@ -55,9 +55,9 @@
android:id="@+id/continueButton" android:id="@+id/continueButton"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginLeft="@dimen/massive_spacing" android:layout_marginHorizontal="@dimen/massive_spacing"
android:layout_marginRight="@dimen/massive_spacing"
android:layout_marginBottom="@dimen/medium_spacing" android:layout_marginBottom="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_link_device"
android:text="@string/continue_2" /> android:text="@string/continue_2" />
</LinearLayout> </LinearLayout>

View File

@ -54,6 +54,7 @@
<ImageView <ImageView
android:layout_width="20dp" android:layout_width="20dp"
android:layout_height="22dp" android:layout_height="22dp"
android:contentDescription="@string/AccessibilityId_edit_user_nickname"
android:paddingTop="2dp" android:paddingTop="2dp"
android:src="@drawable/ic_baseline_edit_24" /> android:src="@drawable/ic_baseline_edit_24" />
@ -71,6 +72,7 @@
android:id="@+id/cancelNicknameEditingButton" android:id="@+id/cancelNicknameEditingButton"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:contentDescription="@string/AccessibilityId_cancel"
android:src="@drawable/ic_baseline_clear_24" /> android:src="@drawable/ic_baseline_clear_24" />
<EditText <EditText
@ -79,11 +81,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginStart="@dimen/small_spacing" android:layout_marginHorizontal="@dimen/small_spacing"
android:layout_marginEnd="@dimen/small_spacing" android:contentDescription="@string/AccessibilityId_username"
android:textAlignment="center" android:textAlignment="center"
android:paddingTop="12dp" android:paddingVertical="12dp"
android:paddingBottom="12dp"
android:inputType="text" android:inputType="text"
android:singleLine="true" android:singleLine="true"
android:imeOptions="actionDone" android:imeOptions="actionDone"
@ -94,6 +95,7 @@
android:id="@+id/saveNicknameButton" android:id="@+id/saveNicknameButton"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:contentDescription="@string/AccessibilityId_apply"
android:src="@drawable/ic_baseline_done_24" /> android:src="@drawable/ic_baseline_done_24" />
</LinearLayout> </LinearLayout>
@ -106,6 +108,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_spacing" android:layout_marginTop="@dimen/medium_spacing"
android:contentDescription="@string/AccessibilityId_session_id"
android:textSize="@dimen/medium_font_size" android:textSize="@dimen/medium_font_size"
android:textIsSelectable="true" android:textIsSelectable="true"
tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" /> tools:text="05987d601943c267879be41830888066c6a024cbdc9a548d06813924bf3372ea78" />
@ -116,8 +119,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/medium_button_height" android:layout_height="@dimen/medium_button_height"
android:layout_marginTop="@dimen/medium_spacing" android:layout_marginTop="@dimen/medium_spacing"
android:paddingLeft="@dimen/large_spacing" android:contentDescription="@string/AccessibilityId_message_user"
android:paddingRight="@dimen/large_spacing" android:paddingHorizontal="@dimen/large_spacing"
android:text="@string/ConversationActivity_message" /> android:text="@string/ConversationActivity_message" />
</LinearLayout> </LinearLayout>

View File

@ -31,6 +31,7 @@
<TextView <TextView
android:id="@+id/textView" android:id="@+id/textView"
android:contentDescription="@string/AccessibilityId_control_message"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center" android:gravity="center"

View File

@ -40,8 +40,9 @@
<TextView <TextView
android:id="@+id/conversationViewDisplayNameTextView" android:id="@+id/conversationViewDisplayNameTextView"
android:layout_width="wrap_content" android:contentDescription="@string/AccessibilityId_conversation_list_item"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/unreadCountIndicator" app:layout_constraintEnd_toStartOf="@id/unreadCountIndicator"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"

View File

@ -19,6 +19,7 @@
<TextView <TextView
android:id="@+id/deleteTitleTextView" android:id="@+id/deleteTitleTextView"
android:contentDescription="@string/AccessibilityId_deleted_message"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="4dp" android:layout_marginStart="4dp"

View File

@ -7,7 +7,8 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="@dimen/medium_spacing" android:padding="@dimen/medium_spacing"
android:gravity="center"> android:gravity="center"
android:contentDescription="@string/AccessibilityId_document">
<ImageView <ImageView
android:id="@+id/documentViewIconImageView" android:id="@+id/documentViewIconImageView"

View File

@ -24,6 +24,7 @@
<RelativeLayout <RelativeLayout
android:id="@+id/attachmentsButtonContainer" android:id="@+id/attachmentsButtonContainer"
android:contentDescription="@string/AccessibilityId_attachments_button"
android:layout_width="@dimen/input_bar_button_expanded_size" android:layout_width="@dimen/input_bar_button_expanded_size"
android:layout_height="@dimen/input_bar_button_expanded_size" android:layout_height="@dimen/input_bar_button_expanded_size"
android:layout_alignParentStart="true" android:layout_alignParentStart="true"
@ -32,6 +33,7 @@
<org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarEditText <org.thoughtcrime.securesms.conversation.v2.input_bar.InputBarEditText
android:id="@+id/inputBarEditText" android:id="@+id/inputBarEditText"
android:contentDescription="@string/AccessibilityId_message_input"
android:inputType="textMultiLine" android:inputType="textMultiLine"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"

View File

@ -29,7 +29,8 @@
android:layout_height="16dp" android:layout_height="16dp"
android:src="@drawable/ic_crown" android:src="@drawable/ic_crown"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" /> android:layout_alignParentBottom="true"
android:contentDescription="@string/AccessibilityId_contact_mentions"/>
</RelativeLayout> </RelativeLayout>
@ -41,6 +42,7 @@
android:textSize="@dimen/small_font_size" android:textSize="@dimen/small_font_size"
android:textColor="?android:textColorPrimary" android:textColor="?android:textColorPrimary"
android:maxLines="1" android:maxLines="1"
android:contentDescription="@string/AccessibilityId_contact_mentions"
android:ellipsize="end" /> android:ellipsize="end" />
</LinearLayout> </LinearLayout>

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:contentDescription="@string/AccessibilityId_message_request"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"

View File

@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:contentDescription="@string/AccessibilityId_message_request_banner"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@drawable/conversation_view_background" android:background="@drawable/conversation_view_background"
android:gravity="center_vertical" android:gravity="center_vertical"

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<org.thoughtcrime.securesms.components.ProfilePictureView <org.thoughtcrime.securesms.components.ProfilePictureView
android:contentDescription="@string/AccessibilityId_profile_picture"
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">

View File

@ -19,6 +19,7 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:contentDescription="@string/AccessibilityId_recovery_phrase_reminder"
android:gravity="center_vertical" android:gravity="center_vertical"
android:padding="@dimen/medium_spacing" android:padding="@dimen/medium_spacing"
android:orientation="horizontal"> android:orientation="horizontal">
@ -58,6 +59,7 @@
<Button <Button
style="@style/Widget.Session.Button.Common.ProminentOutline" style="@style/Widget.Session.Button.Common.ProminentOutline"
android:contentDescription="@string/AccessibilityId_continue"
android:id="@+id/button" android:id="@+id/button"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="28dp" android:layout_height="28dp"

View File

@ -2,9 +2,10 @@
<org.thoughtcrime.securesms.conversation.v2.messages.UntrustedAttachmentView <org.thoughtcrime.securesms.conversation.v2.messages.UntrustedAttachmentView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools" android:contentDescription="@string/AccessibilityId_untrusted_attachment_message"
android:orientation="horizontal" android:orientation="horizontal"
android:padding="@dimen/medium_spacing" android:padding="@dimen/medium_spacing"
android:gravity="center"> android:gravity="center">

View File

@ -4,6 +4,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="64dp" android:layout_height="64dp"
android:background="@drawable/conversation_view_background" android:background="@drawable/conversation_view_background"
android:contentDescription="@string/AccessibilityId_contact"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
@ -23,6 +24,7 @@
<TextView <TextView
android:id="@+id/nameTextView" android:id="@+id/nameTextView"
android:contentDescription="@string/AccessibilityId_contact"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/medium_spacing" android:layout_marginStart="@dimen/medium_spacing"
@ -36,6 +38,7 @@
<ImageView <ImageView
android:id="@+id/actionIndicatorImageView" android:id="@+id/actionIndicatorImageView"
android:contentDescription="@string/AccessibilityId_select_contact"
android:layout_width="24dp" android:layout_width="24dp"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_marginStart="@dimen/medium_spacing" android:layout_marginStart="@dimen/medium_spacing"

View File

@ -88,6 +88,7 @@
android:layout_height="12dp" android:layout_height="12dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginHorizontal="@dimen/small_spacing" android:layout_marginHorizontal="@dimen/small_spacing"
android:contentDescription="@string/AccessibilityId_timer_icon"
android:visibility="invisible" android:visibility="invisible"
tools:visibility="visible" /> tools:visibility="visible" />

View File

@ -99,6 +99,7 @@
app:barrierDirection="bottom"/> app:barrierDirection="bottom"/>
<org.thoughtcrime.securesms.components.emoji.EmojiTextView <org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:contentDescription="@string/AccessibilityId_message_body"
app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_bias="0"
tools:visibility="visible" tools:visibility="visible"
android:visibility="gone" android:visibility="gone"

View File

@ -3,6 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/mainVoiceMessageViewContainer" android:id="@+id/mainVoiceMessageViewContainer"
android:contentDescription="@string/AccessibilityId_voice_message"
android:layout_width="160dp" android:layout_width="160dp"
android:layout_height="36dp"> android:layout_height="36dp">

View File

@ -5,11 +5,13 @@
<item <item
android:title="@string/conversation__menu_view_all_media" android:title="@string/conversation__menu_view_all_media"
android:id="@+id/menu_view_all_media" /> android:id="@+id/menu_view_all_media"
android:contentDescription="@string/AccessibilityId_all_media"/>
<item <item
android:title="@string/SearchToolbar_search" android:title="@string/SearchToolbar_search"
android:id="@+id/menu_search" android:id="@+id/menu_search"
android:contentDescription="@string/AccessibilityId_search"
app:actionViewClass="androidx.appcompat.widget.SearchView" app:actionViewClass="androidx.appcompat.widget.SearchView"
app:showAsAction="collapseActionView" /> app:showAsAction="collapseActionView" />

View File

@ -4,6 +4,7 @@
<item <item
android:title="@string/recipient_preferences__block" android:title="@string/recipient_preferences__block"
android:contentDescription="@string/AccessibilityId_block"
android:id="@+id/menu_block" /> android:id="@+id/menu_block" />
</menu> </menu>

View File

@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:title="@string/conversation_context__menu_call" android:title="@string/conversation_context__menu_call"
android:contentDescription="@string/AccessibilityId_call_button"
android:icon="@drawable/ic_baseline_call_24" android:icon="@drawable/ic_baseline_call_24"
app:showAsAction="always" app:showAsAction="always"
android:id="@+id/menu_call"/> android:id="@+id/menu_call"/>

View File

@ -5,11 +5,13 @@
<item <item
android:id="@+id/menu_edit_group" android:id="@+id/menu_edit_group"
android:contentDescription="@string/AccessibilityId_edit_group"
android:title="@string/conversation__menu_edit_group" android:title="@string/conversation__menu_edit_group"
app:showAsAction="collapseActionView" /> app:showAsAction="collapseActionView" />
<item <item
android:id="@+id/menu_leave_group" android:id="@+id/menu_leave_group"
android:contentDescription="@string/AccessibilityId_leave_group"
android:title="@string/conversation__menu_leave_group" android:title="@string/conversation__menu_leave_group"
app:showAsAction="collapseActionView"/> app:showAsAction="collapseActionView"/>

View File

@ -5,6 +5,7 @@
<item <item
android:title="@string/activity_conversation_menu_copy_session_id" android:title="@string/activity_conversation_menu_copy_session_id"
android:id="@+id/menu_copy_session_id" android:id="@+id/menu_copy_session_id"
android:icon="@drawable/ic_content_copy_white_24dp" /> android:icon="@drawable/ic_content_copy_white_24dp"
android:contentDescription="@string/AccessibilityId_copy_session_id"/>
</menu> </menu>

View File

@ -4,6 +4,7 @@
<item <item
android:title="@string/conversation_expiring_off__disappearing_messages" android:title="@string/conversation_expiring_off__disappearing_messages"
android:contentDescription="@string/AccessibilityId_disappearing_messages"
android:id="@+id/menu_expiring_messages_off" android:id="@+id/menu_expiring_messages_off"
android:icon="@drawable/ic_baseline_timer_off_24" /> android:icon="@drawable/ic_baseline_timer_off_24" />

View File

@ -5,6 +5,7 @@
<item <item
android:id="@+id/menu_expiring_messages" android:id="@+id/menu_expiring_messages"
android:contentDescription="@string/AccessibilityId_disappearing_messages_timer"
app:actionLayout="@layout/expiration_timer_menu" app:actionLayout="@layout/expiration_timer_menu"
app:showAsAction="always" app:showAsAction="always"
android:title="@string/menu_conversation_expiring_on__messages_expiring" /> android:title="@string/menu_conversation_expiring_on__messages_expiring" />

View File

@ -2,5 +2,6 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"> <menu xmlns:android="http://schemas.android.com/apk/res/android">
<item <item
android:title="@string/RecipientPreferenceActivity_notification_settings" android:title="@string/RecipientPreferenceActivity_notification_settings"
android:id="@+id/menu_notification_settings"/> android:id="@+id/menu_notification_settings"
android:contentDescription="@string/AccessibilityId_notification_settings"/>
</menu> </menu>

View File

@ -4,6 +4,7 @@
<item <item
android:title="@string/conversation_unmuted__mute_notifications" android:title="@string/conversation_unmuted__mute_notifications"
android:id="@+id/menu_mute_notifications" /> android:id="@+id/menu_mute_notifications"
android:contentDescription="@string/AccessibilityId_mute_notifications" />
</menu> </menu>

View File

@ -6,6 +6,7 @@
android:title="@string/menu_done_button" android:title="@string/menu_done_button"
android:id="@+id/doneButton" android:id="@+id/doneButton"
android:icon="?menu_accept_icon" android:icon="?menu_accept_icon"
android:contentDescription="@string/AccessibilityId_done"
app:showAsAction="always" /> app:showAsAction="always" />
</menu> </menu>

View File

@ -4,8 +4,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<item <item
android:title="@string/menu_apply_button"
android:id="@+id/action_apply" android:id="@+id/action_apply"
app:showAsAction="always|withText"/> android:title="@string/menu_apply_button"
android:contentDescription="@string/AccessibilityId_apply_changes"
app:showAsAction="always|withText" />
</menu> </menu>

View File

@ -9,6 +9,145 @@
<string name="save">Save</string> <string name="save">Save</string>
<string name="note_to_self">Note to Self</string> <string name="note_to_self">Note to Self</string>
<string name="version_s">Version %s</string> <string name="version_s">Version %s</string>
<!--Accessibility ID's-->
<!-- Landing Page -->
<string name="AccessibilityId_create_session_id">Create session ID</string>
<string name="AccessibilityId_restore_your_session">Restore Your Session</string>
<string name="AccessibilityId_link_a_device">Link a device</string>
<string name="AccessibilityId_link_device">Link Device</string>
<!-- Session ID Page-->
<string name="AccessibilityId_session_id">Session ID</string>
<string name="AccessibilityId_recovery_phrase_reminder">Recovery phrase reminder</string>
<string name="AccessibilityId_continue">Continue</string>
<!-- Recovery phrase input -->
<string name="AccessibilityId_copy_session_id">Copy Session ID</string>
<!--Restore by seed page-->
<string name="AccessibilityId_enter_your_recovery_phrase">Enter your recovery phrase</string>
<!--Create Display Name -->
<string name="AccessibilityId_enter_display_name">Enter display name</string>
<!--Message Notifications Options-->
<string name="AccessibilityId_message_notifications">Message Notifications</string>
<string name="AccessibilityId_fast_mode_notifications_option">Fast mode notifications option</string>
<string name="AccessibilityId_slow_mode_notifications_option">Slow mode notifications option</string>
<string name="AccessibilityId_continue_message_notifications">Continue with settings</string>
<!--Recovery Phrase reminder-->
<string name="AccessibilityId_recovery_phrase">Recovery Phrase</string>
<string name="AccessibilityId_copy_recovery_phrase">Copy Recovery Phrase</string>
<!--Home Page-->
<string name="AccessibilityId_profile_picture">User settings</string>
<string name="AccessibilityId_search_icon">Search icon</string>
<string name="AccessibilityId_conversation_list_item">Conversation list item</string>
<string name="AccessibilityId_details">Details</string>
<string name="AccessibilityId_pin">Pin</string>
<!--Settings Page -->
<string name="AccessibilityId_blocked_contacts">Blocked contacts</string>
<!--Message requests-->
<string name="AccessibilityId_message_request_banner">Message requests banner</string>
<string name="AccessibilityId_message_request">Message request</string>
<string name="AccessibilityId_empty_message_request_folder">No pending message requests</string>
<string name="AccessibilityId_clear_all_message_requests">Clear all</string>
<!--New conversation pop up-->
<string name="AccessibilityId_new_conversation_button">New conversation button</string>
<string name="AccessibilityId_new_direct_message">New direct message</string>
<string name="AccessibilityId_create_group">Create group</string>
<string name="AccessibilityId_join_community">Join community</string>
<!-- Conversation options (three dots menu)-->
<string name="AccessibilityId_all_media">All media</string>
<string name="AccessibilityId_search">Search</string>
<string name="AccessibilityId_add_to_home_screen">Add to home screen</string>
<string name="AccessibilityId_disappearing_messages">Disappearing messages</string>
<string name="AccessibilityId_block">Block</string>
<string name="AccessibilityId_block_confirm">Confirm block</string>
<string name="AccessibilityId_notification_settings">Notification settings</string>
<string name="AccessibilityId_mute_notifications">Mute notifications</string>
<string name="AccessibilityId_delete">Delete</string>
<string name="AccessibilityId_enable">Enable</string>
<!-- Conversation options for closed group-->
<string name="AccessibilityId_edit_group">Edit group</string>
<string name="AccessibilityId_leave_group">Leave group</string>
<string name="AccessibilityId_group_name">Group name</string>
<string name="AccessibilityId_accept_name_change">Accept name change</string>
<string name="AccessibilityId_cancel_name_change">Cancel name change</string>
<string name="AccessibilityId_apply_changes">Apply changes</string>
<string name="AccessibilityId_add_members">Add members</string>
<string name="AccessibilityId_done">Done</string>
<string name="AccessibilityId_mentions_list">Mentions list</string>
<string name="AccessibilityId_contact_mentions">Contact mentions</string>
<!-- Conversation icons -->
<string name="AccessibilityId_call_button">Call button</string>
<string name="AccessibilityId_settings">Settings</string>
<string name="AccessibilityId_disappearing_messages_timer">Disappearing messages timer</string>
<string name="AccessibilityId_disappearing_messages_time_picker">Time selector</string>
<string name="AccessibilityId_accept_message_request_button">Accept message request</string>
<string name="AccessibilityId_decline_message_request_button">Decline message request</string>
<string name="AccessibilityId_block_message_request_button">Block message request</string>
<string name="AccessibilityId_timer_icon">Timer icon</string>
<!-- Configuration messages -->
<string name="AccessibilityId_control_message">Configuration message</string>
<string name="AccessibilityId_blocked_banner">Blocked banner</string>
<string name="AccessibilityId_blocked_banner_text">Blocked banner text</string>
<!--New Session -->
<string name="AccessibilityId_session_id_input">Session id input box</string>
<string name="AccessibilityId_next">Next</string>
<!-- New group -->
<string name="AccessibilityId_group_name_input">Group name input</string>
<string name="AccessibilityId_continue_group_creation">Continue group creation</string>
<string name="AccessibilityId_contact">Contact</string>
<string name="AccessibilityId_select_contact">Select contact</string>
<!--Conversation screen -->
<string name="AccessibilityId_message_input">Message input box</string>
<string name="AccessibilityId_microphone_button">New voice message</string>
<string name="AccessibilityId_send_message_button">Send message button</string>
<string name="AccessibilityId_attachments_button">Attachments button</string>
<string name="AccessibilityId_select_camera_button">Select camera button</string>
<string name="AccessibilityId_images_folder">Images folder</string>
<string name="AccessibilityId_documents_folder">Documents folder</string>
<string name="AccessibilityId_gif_button">GIF button</string>
<string name="AccessibilityId_untrusted_attachment_message">Untrusted attachment message</string>
<string name="AccessibilityId_download_media">Download media</string>
<string name="AccessibilityId_dont_download_media">Don\'t download media</string>
<!-- Conversation View-->
<string name="AccessibilityId_message_sent_status_tick">Message sent status: Sent</string>
<string name="AccessibilityId_message_sent_status_pending">Message sent status pending</string>
<string name="AccessibilityId_message_request_config_message">Message request has been accepted</string>
<string name="AccessibilityId_message_body">Message Body</string>
<string name="AccessibilityId_voice_message">Voice message</string>
<string name="AccessibilityId_document">Document</string>
<string name="AccessibilityId_deleted_message">Deleted message</string>
<string name="AccessibilityId_delete_message">Delete message</string>
<string name="AccessibilityId_reply_message">Reply to message</string>
<string name="AccessibilityId_select">Select</string>
<string name="AccessibilityId_save_attachment">Save attachment</string>
<!-- Delete message modal-->
<string name="AccessibilityId_delete_just_for_me">Delete just for me</string>
<string name="AccessibilityId_delete_for_everyone">Delete for everyone</string>
<string name="AccessibilityId_cancel_deletion">Cancel deletion</string>
<!--Settings Page-->
<string name="AccessibilityId_username_input">Username input</string>
<string name="AccessibilityId_username_text">Username text</string>
<string name="AccessibilityId_user_settings">User settings</string>
<string name="AccessibilityId_username">Username</string>
<string name="AccessibilityId_privacy">Privacy</string>
<string name="AccessibilityId_show_recovery_phrase">Show recovery phrase</string>
<string name="AccessibilityId_edit_user_nickname">Edit user nickname</string>
<string name="AccessibilityId_apply">Apply</string>
<string name="AccessibilityId_cancel">Cancel</string>
<string name="AccessibilityId_message_user">Message user</string>
<string name="AccessibilityId_notifications">Notifications</string>
<string name="AccessibilityId_conversations">Conversations</string>
<string name="AccessibilityId_message_requests">Message requests</string>
<string name="AccessibilityId_appearance">Appearance</string>
<string name="AccessibilityId_invite_friend">Invite a friend</string>
<string name="AccessibilityId_help">Help</string>
<string name="AccessibilityId_clear_data">Clear data</string>
<!-- Recovery Phrase Dialog-->
<string name="AccessibilityId_cancel_button">Cancel</string>
<!-- Link preview Dialog-->
<string name="AccessibilityId_enable_link_preview_button">Enable</string>
<string name="AccessibilityId_cancel_link_preview_button">Cancel</string>
<!-- AbstractNotificationBuilder --> <!-- AbstractNotificationBuilder -->
<string name="AbstractNotificationBuilder_new_message">New message</string> <string name="AbstractNotificationBuilder_new_message">New message</string>
<!-- AlbumThumbnailView --> <!-- AlbumThumbnailView -->