From 2cff0881131d3cd4469d3494a3f7bf0ee3f2f09e Mon Sep 17 00:00:00 2001 From: Jin Cao Date: Mon, 6 Oct 2014 18:55:04 -0700 Subject: Add folders to conversation item content description b/16574780 Change-Id: I7c9ec0da374c89364633158e65bbb7fbdc317873 --- res/values/strings.xml | 6 +++++- .../android/mail/browse/ConversationItemView.java | 22 ++++++++++++++++++++-- .../mail/browse/ConversationItemViewModel.java | 14 +++++++++++--- 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 4e426ed07..a9ac20863 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -283,7 +283,11 @@ %1$s%2$s about %3$s, %4$s on %5$s, %6$s %1$s%2$s about %3$s, %4$s at %5$s, %6$s - + + %1$s%2$s about %3$s, %4$s on %5$s, %6$s, labels: %7$s + + %1$s%2$s about %3$s, %4$s at %5$s, %6$s, labels: %7$s + conversation read conversation unread diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java index 2010be0d8..5f1dbd29b 100644 --- a/src/com/android/mail/browse/ConversationItemView.java +++ b/src/com/android/mail/browse/ConversationItemView.java @@ -34,6 +34,7 @@ import android.graphics.Rect; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; +import android.support.annotation.Nullable; import android.support.v4.text.BidiFormatter; import android.support.v4.text.TextUtilsCompat; import android.support.v4.view.ViewCompat; @@ -335,6 +336,18 @@ public class ConversationItemView extends View xStart += (isRtl) ? -usedWidth : usedWidth; } } + + public @Nullable String getFoldersDesc() { + if (mFoldersSortedSet != null && !mFoldersSortedSet.isEmpty()) { + final StringBuilder builder = new StringBuilder(); + final String comma = mContext.getString(R.string.enumeration_comma); + for (Folder f : mFoldersSortedSet) { + builder.append(f.name).append(comma); + } + return builder.toString(); + } + return null; + } } public ConversationItemView(Context context, Account account) { @@ -717,10 +730,15 @@ public class ConversationItemView extends View } private void setContentDescription() { + String foldersDesc = null; + if (mHeader != null && mHeader.folderDisplayer != null) { + foldersDesc = mHeader.folderDisplayer.getFoldersDesc(); + } + if (mActivity.isAccessibilityEnabled()) { mHeader.resetContentDescription(); - setContentDescription( - mHeader.getContentDescription(mContext, mDisplayedFolder.shouldShowRecipients())); + setContentDescription(mHeader.getContentDescription( + mContext, mDisplayedFolder.shouldShowRecipients(), foldersDesc)); } } diff --git a/src/com/android/mail/browse/ConversationItemViewModel.java b/src/com/android/mail/browse/ConversationItemViewModel.java index 84cf59a61..78f4f7856 100644 --- a/src/com/android/mail/browse/ConversationItemViewModel.java +++ b/src/com/android/mail/browse/ConversationItemViewModel.java @@ -245,7 +245,8 @@ public class ConversationItemViewModel { /** * Get conversation information to use for accessibility. */ - public CharSequence getContentDescription(Context context, boolean showToHeader) { + public CharSequence getContentDescription(Context context, boolean showToHeader, + String foldersDesc) { if (mContentDescription == null) { // If any are unread, get the first unread sender. // If all are unread, get the first sender. @@ -289,9 +290,16 @@ public class ConversationItemViewModel { .toString(); String readString = context.getString( conversation.read ? R.string.read_string : R.string.unread_string); - int res = isToday ? R.string.content_description_today : R.string.content_description; + final int res; + if (foldersDesc == null) { + res = isToday ? R.string.content_description_today : R.string.content_description; + } else { + res = isToday ? R.string.content_description_today_with_folders : + R.string.content_description_with_folders; + } mContentDescription = context.getString(res, toHeader, participant, - conversation.subject, conversation.getSnippet(), date, readString); + conversation.subject, conversation.getSnippet(), date, readString, + foldersDesc); } return mContentDescription; } -- cgit v1.2.3