a11y: Improvements to message list presentation

Improved screen reader accessibility of message list in regard to up to date features since this has been looked into last time.

It includes these changes:
* Explicitly set contentDescription of image buttons and image views to @null rather than setting it into textual values where these are not used.
* Some 3rd party screen reader apps don't disable their contentDescription calculation from child widgets while the parent has a custom actions and overridden contentDescriptions so use setImportantForAccessibility on all the widgets contentDescription is populated from. This avoids speaking some texts multiple times on non default accessibility service setups.
* Added missing details to the contentDescription such as signed, notes, labels, keywords.
* Change it so visibility of the individual widgets is respected where possible.

Signed-off-by: Peter Vágner <pvdeejay@gmail.com>
pull/216/head
Peter Vágner 2 months ago committed by Peter Vágner
parent c75c21573b
commit 8282992151

@ -5074,14 +5074,22 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
ToastEx.makeText(context, ssb, Toast.LENGTH_LONG).show();
}
private void onShowPriority(TupleMessageEx message) {
private int getPriority(TupleMessageEx message) {
int resid = -1;
if (EntityMessage.PRIORITIY_HIGH.equals(message.ui_priority))
ToastEx.makeText(context, R.string.title_legend_priority, Toast.LENGTH_LONG).show();
resid = R.string.title_legend_priority;
else
ToastEx.makeText(context, R.string.title_legend_priority_low, Toast.LENGTH_LONG).show();
resid = R.string.title_legend_priority_low;
return resid;
}
private void onShowSensitivity(TupleMessageEx message) {
private void onShowPriority(TupleMessageEx message) {
int resid = getPriority(message);
if (resid > 0)
ToastEx.makeText(context, resid, Toast.LENGTH_LONG).show();
}
private int getSensitivity(TupleMessageEx message) {
int resid = -1;
if (EntityMessage.SENSITIVITY_PERSONAL.equals(message.sensitivity))
resid = R.string.title_legend_sensitivity_personal;
@ -5089,26 +5097,41 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
resid = R.string.title_legend_sensitivity_private;
else if (EntityMessage.SENSITIVITY_CONFIDENTIAL.equals(message.sensitivity))
resid = R.string.title_legend_sensitivity_confidential;
return resid;
}
private void onShowSensitivity(TupleMessageEx message) {
int resid = getSensitivity(message);
if (resid > 0)
ToastEx.makeText(context, resid, Toast.LENGTH_LONG).show();
}
private void onShowSigned(TupleMessageEx message) {
private int getSigned(TupleMessageEx message) {
int resid = -1;
if (EntityMessage.PGP_SIGNONLY.equals(message.ui_encrypt))
resid = R.string.title_advanced_caption_pgp;
else if (EntityMessage.SMIME_SIGNONLY.equals(message.ui_encrypt))
resid = R.string.title_advanced_caption_smime;
return resid;
}
private void onShowSigned(TupleMessageEx message) {
int resid = getSigned(message);
if (resid > 0)
ToastEx.makeText(context, resid, Toast.LENGTH_LONG).show();
}
private void onShowEncrypted(TupleMessageEx message) {
private int getEncrypted(TupleMessageEx message) {
int resid = -1;
if (EntityMessage.PGP_SIGNENCRYPT.equals(message.ui_encrypt))
resid = R.string.title_advanced_caption_pgp;
else if (EntityMessage.SMIME_SIGNENCRYPT.equals(message.ui_encrypt))
resid = R.string.title_advanced_caption_smime;
return resid;
}
private void onShowEncrypted(TupleMessageEx message) {
int resid = getEncrypted(message);
if (resid > 0)
ToastEx.makeText(context, resid, Toast.LENGTH_LONG).show();
}
@ -8107,19 +8130,30 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
result.add(context.getString(
message.unseen > 0 ? R.string.title_accessibility_unseen : R.string.title_accessibility_seen));
if (tvCount.getVisibility() == View.VISIBLE)
if (tvCount.getVisibility() == View.VISIBLE) {
result.add(context.getResources().getQuantityString(
R.plurals.title_accessibility_messages, message.visible, message.visible));
tvCount.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ibExpander.getVisibility() == View.VISIBLE)
if (ibExpander.getVisibility() == View.VISIBLE) {
result.add(context.getString(
expanded ? R.string.title_accessibility_expanded : R.string.title_accessibility_collapsed));
ibExpander.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (message.drafts > 0)
result.add(context.getString(R.string.title_legend_draft));
if (message.ui_answered)
if (ivAnswered.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_accessibility_answered));
ivAnswered.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ivForwarded.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_accessibility_forwarded));
ivForwarded.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ibFlagged.getVisibility() == View.VISIBLE && ibFlagged.isEnabled()) {
int flagged = (message.count - message.unflagged);
@ -8127,13 +8161,25 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
result.add(context.getString(R.string.title_accessibility_flagged));
}
if (EntityMessage.PRIORITIY_HIGH.equals(message.ui_priority))
result.add(context.getString(R.string.title_legend_priority));
else if (EntityMessage.PRIORITIY_LOW.equals(message.ui_priority))
result.add(context.getString(R.string.title_legend_priority_low));
if (ibPriority.getVisibility() == View.VISIBLE) {
result.add(context.getString(getPriority(message)));
ibPriority.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ibSensitivity.getVisibility() == View.VISIBLE) {
result.add(context.getString(getSensitivity(message)));
ibSensitivity.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (message.attachments > 0)
if (ivAttachments.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_accessibility_attachment));
ivAttachments.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvNotes.getVisibility() == View.VISIBLE) {
result.add(tvNotes.getText().toString());
tvNotes.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
boolean outgoing = isOutgoing(message);
Address[] addresses = (EntityFolder.isOutgoing(message.folderType) &&
@ -8151,20 +8197,34 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
result.add(tvTime.getText().toString());
result.add(message.subject);
}
tvFrom.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
tvSubject.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
tvTime.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
if (ibSigned.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_legend_signed) + " " + context.getString(getSigned(message)));
ibSigned.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (message.isSigned())
result.add(context.getString(R.string.title_legend_encrypted));
else if (message.isEncrypted())
result.add(context.getString(R.string.title_legend_signed));
if (ibEncrypted.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_legend_encrypted) + " " + context.getString(getEncrypted(message)));
ibEncrypted.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ibAuth.getVisibility() == View.VISIBLE)
if (ibAuth.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_legend_auth));
ibAuth.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ivFound.getVisibility() == View.VISIBLE)
if (ivFound.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_legend_found));
ivFound.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (ibSnoozed.getVisibility() == View.VISIBLE)
if (ibSnoozed.getVisibility() == View.VISIBLE) {
result.add(context.getString(R.string.title_legend_snoozed));
ibSnoozed.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (expanded) {
if (message.receipt_request != null && message.receipt_request)
@ -8175,17 +8235,40 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
result.add(context.getString(R.string.title_legend_browsed));
}
if (tvFolder.getVisibility() == View.VISIBLE)
if (tvFolder.getVisibility() == View.VISIBLE) {
result.add(tvFolder.getText().toString());
tvFolder.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvLabels.getVisibility() == View.VISIBLE) {
result.add(tvLabels.getText().toString());
tvLabels.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvSize.getVisibility() == View.VISIBLE)
if (tvSize.getVisibility() == View.VISIBLE) {
result.add(tvSize.getText().toString());
tvSize.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvError.getVisibility() == View.VISIBLE)
if (tvError.getVisibility() == View.VISIBLE) {
result.add(tvError.getText().toString());
tvError.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvPreview.getVisibility() == View.VISIBLE)
if (tvExpand.getVisibility() == View.VISIBLE) {
result.add(tvExpand.getText().toString());
tvExpand.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvPreview.getVisibility() == View.VISIBLE) {
result.add(tvPreview.getText().toString());
tvPreview.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
if (tvKeywords.getVisibility() == View.VISIBLE) {
result.add(tvKeywords.getText().toString());
tvKeywords.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO);
}
return TextUtils.join(", ", result);
}

@ -8,6 +8,7 @@
android:id="@+id/ivBadge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/badge" />
@ -17,6 +18,7 @@
android:layout_width="6dp"
android:layout_height="0dp"
android:background="?attr/colorAccent"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
app:layout_constraintStart_toEndOf="@+id/ivBadge"
app:layout_constraintTop_toTopOf="parent" />
@ -37,6 +39,7 @@
android:layout_gravity="center_vertical|center_horizontal"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
app:layout_constraintStart_toEndOf="@id/vwColor"
@ -57,7 +60,7 @@
android:layout_height="0dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_avatar"
android:contentDescription="@null"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintDimensionRatio="1:1"
@ -71,6 +74,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibAvatar"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -83,7 +87,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_auth"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibVerified"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -96,6 +100,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibAuth"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -108,6 +113,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibPriority"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -119,6 +125,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibSensitivity"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -131,7 +138,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_signed"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ivImportance"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -143,7 +150,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_encrypted"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibSigned"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -197,6 +204,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ibAvatar"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -207,7 +215,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_found"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ivType"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -219,7 +227,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_snoozed"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ivFound"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -230,7 +238,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_classified"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -241,7 +249,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_answered"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ivClassified"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -252,7 +260,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_answered"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ivAnswered"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -263,6 +271,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvSubject"
app:layout_constraintStart_toEndOf="@id/ivForwarded"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -303,6 +312,7 @@
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginEnd="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@id/tvSubject"
app:layout_constraintEnd_toStartOf="@+id/ibFlagged"
app:layout_constraintTop_toTopOf="@+id/tvSubject"
@ -314,6 +324,7 @@
android:layout_height="36dp"
android:layout_marginEnd="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
android:paddingTop="6dp"
android:paddingBottom="6dp"
android:visibility="visible"
@ -427,6 +438,7 @@
android:layout_height="27dp"
android:layout_marginEnd="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/tvError"
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"

@ -7,6 +7,7 @@
android:id="@+id/ivBadge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@null"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/badge" />
@ -16,6 +17,7 @@
android:layout_width="6dp"
android:layout_height="0dp"
android:background="?attr/colorAccent"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
app:layout_constraintStart_toEndOf="@+id/ivBadge"
app:layout_constraintTop_toTopOf="parent" />
@ -36,6 +38,7 @@
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:visibility="visible"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/paddingBottom"
app:layout_constraintStart_toEndOf="@id/vwColor"
app:layout_constraintTop_toTopOf="@id/paddingTop"
@ -54,7 +57,7 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_avatar"
android:contentDescription="@null"
android:paddingStart="6dp"
android:paddingEnd="6dp"
android:scaleType="centerCrop"
@ -70,6 +73,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibAvatar"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -82,7 +86,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_auth"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibVerified"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -95,6 +99,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibAuth"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -107,6 +112,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibPriority"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -118,6 +124,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibSensitivity"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -130,7 +137,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_signed"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ivImportance"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -142,7 +149,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_encrypted"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFrom"
app:layout_constraintStart_toEndOf="@id/ibSigned"
app:layout_constraintTop_toTopOf="@+id/tvFrom"
@ -226,6 +233,7 @@
android:layout_height="42dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:padding="6dp"
android:contentDescription="@null"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintEnd_toStartOf="@id/paddingEnd"
@ -237,6 +245,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ibAvatar"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -247,7 +256,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_found"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivType"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -259,7 +268,7 @@
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/title_legend_snoozed"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivFound"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -270,7 +279,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_classified"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ibSnoozed"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -281,7 +290,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_answered"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivClassified"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -292,7 +301,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@string/title_legend_answered"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivAnswered"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -303,6 +312,7 @@
android:layout_width="21dp"
android:layout_height="21dp"
android:layout_marginStart="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintStart_toEndOf="@id/ivForwarded"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -343,6 +353,7 @@
android:layout_width="15dp"
android:layout_height="15dp"
android:layout_marginEnd="6dp"
android:contentDescription="@null"
app:layout_constraintBottom_toBottomOf="@+id/tvFolder"
app:layout_constraintEnd_toStartOf="@+id/ibFlagged"
app:layout_constraintTop_toTopOf="@+id/tvFolder"
@ -427,6 +438,7 @@
android:layout_height="27dp"
android:layout_marginEnd="6dp"
android:background="?android:attr/selectableItemBackgroundBorderless"
android:contentDescription="@null"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="@+id/tvError"
app:layout_constraintEnd_toStartOf="@+id/paddingEnd"

@ -2541,6 +2541,7 @@
<string name="title_accessibility_view_help">View help</string>
<string name="title_accessibility_selected">Selected</string>
<string name="title_accessibility_answered">Replied</string>
<string name="title_accessibility_forwarded">Forwarded</string>
<string name="title_accessibility_scroll_down">Scroll down</string>
<string name="title_accessibility_scroll_up">Scroll up</string>
<string name="title_accessibility_filter_out_seen">Toggle read messages filter</string>

Loading…
Cancel
Save