diff options
author | Jin Cao <jinyan@google.com> | 2014-10-06 18:55:04 -0700 |
---|---|---|
committer | Jin Cao <jinyan@google.com> | 2014-10-07 17:54:10 -0700 |
commit | 2cff0881131d3cd4469d3494a3f7bf0ee3f2f09e (patch) | |
tree | 337134a1c87392cec572aec5cdaecc020ad31ec4 | |
parent | 962eb8ebd4b627e05b00ab658425d0fc7a42329c (diff) | |
download | UnifiedEmail-2cff0881131d3cd4469d3494a3f7bf0ee3f2f09e.tar.gz |
Add folders to conversation item content description
b/16574780
Change-Id: I7c9ec0da374c89364633158e65bbb7fbdc317873
-rw-r--r-- | res/values/strings.xml | 6 | ||||
-rw-r--r-- | src/com/android/mail/browse/ConversationItemView.java | 22 | ||||
-rw-r--r-- | src/com/android/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 @@ <string name="content_description"><xliff:g id="toHeader">%1$s</xliff:g><xliff:g id="participant">%2$s</xliff:g> about <xliff:g id="subject">%3$s</xliff:g>, <xliff:g id="snippet">%4$s</xliff:g> on <xliff:g id="date">%5$s</xliff:g>, <xliff:g id="readstate">%6$s</xliff:g></string> <!-- Formatting string for the content description field of a conversation list item when device is in accessibility mode and the message was received today. [CHAR LIMI=250] --> <string name="content_description_today"><xliff:g id="toHeader">%1$s</xliff:g><xliff:g id="participant">%2$s</xliff:g> about <xliff:g id="subject">%3$s</xliff:g>, <xliff:g id="snippet">%4$s</xliff:g> at <xliff:g id="time">%5$s</xliff:g>, <xliff:g id="readstate">%6$s</xliff:g></string> - <!-- String used in content description field of a conversation list item when device is in accessibility mode and the conversation was read [CHAR LIMIT=250] --> + <!-- Formatting string for the content description field of a conversation list item when device is in accessibility mode. [CHAR LIMIT=250] --> + <string name="content_description_with_folders"><xliff:g id="toHeader">%1$s</xliff:g><xliff:g id="participant">%2$s</xliff:g> about <xliff:g id="subject">%3$s</xliff:g>, <xliff:g id="snippet">%4$s</xliff:g> on <xliff:g id="date">%5$s</xliff:g>, <xliff:g id="readstate">%6$s</xliff:g>, labels: <xliff:g id="folders">%7$s</xliff:g></string> + <!-- Formatting string for the content description field of a conversation list item when device is in accessibility mode and the message was received today. [CHAR LIMI=250] --> + <string name="content_description_today_with_folders"><xliff:g id="toHeader">%1$s</xliff:g><xliff:g id="participant">%2$s</xliff:g> about <xliff:g id="subject">%3$s</xliff:g>, <xliff:g id="snippet">%4$s</xliff:g> at <xliff:g id="time">%5$s</xliff:g>, <xliff:g id="readstate">%6$s</xliff:g>, labels: <xliff:g id="folders">%7$s</xliff:g></string> + <!-- String used in content description field of a conversation list item when device is in accessibility mode and the conversation was read [CHAR LIMIT=250] --> <string name="read_string">conversation read</string> <!-- String used in content description field of a conversation list item when device is in accessibility mode and the conversation was not read [CHAR LIMIT=250] --> <string name="unread_string">conversation unread</string> 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; } |