summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJin Cao <jinyan@google.com>2014-10-06 18:55:04 -0700
committerJin Cao <jinyan@google.com>2014-10-07 17:54:10 -0700
commit2cff0881131d3cd4469d3494a3f7bf0ee3f2f09e (patch)
tree337134a1c87392cec572aec5cdaecc020ad31ec4
parent962eb8ebd4b627e05b00ab658425d0fc7a42329c (diff)
downloadUnifiedEmail-2cff0881131d3cd4469d3494a3f7bf0ee3f2f09e.tar.gz
Add folders to conversation item content description
b/16574780 Change-Id: I7c9ec0da374c89364633158e65bbb7fbdc317873
-rw-r--r--res/values/strings.xml6
-rw-r--r--src/com/android/mail/browse/ConversationItemView.java22
-rw-r--r--src/com/android/mail/browse/ConversationItemViewModel.java14
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;
}