Merge "New content description string." into jb-ub-mail
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 5e04654..7414b36 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -304,7 +304,7 @@
<item quantity="other">Move <xliff:g>%1$d</xliff:g> conversations</item>
</plurals>
<!-- Formatting string for the content description field of a conversation list item when device is in accessibility mode. [CHAR LIMI=250] -->
- <string name="content_description">Subject: <xliff:g id="subject">%1$s</xliff:g> Snippet:<xliff:g id="snippet">%2$s</xliff:g></string>
+ <string name="content_description"><xliff:g id="sender">%1$s</xliff:g> sent <xliff:g id="subject">%2$s</xliff:g> on <xliff:g id="date">%3$s</xliff:g></string>
<!-- Formatting string. If the subject contains the tag of a mailing-list (text surrounded with
return the subject with that tag ellipsized, e.g. "[android-gmail-team] Hello" -> "[andr...] Hello" [CHAR LIMIT=100] -->
<string name="filtered_tag"> [<xliff:g id="tag">%1$s</xliff:g>]<xliff:g id="subject">%2$s</xliff:g></string>
diff --git a/src/com/android/mail/browse/ConversationItemViewModel.java b/src/com/android/mail/browse/ConversationItemViewModel.java
index 3b69c9c..44227e3 100644
--- a/src/com/android/mail/browse/ConversationItemViewModel.java
+++ b/src/com/android/mail/browse/ConversationItemViewModel.java
@@ -29,6 +29,7 @@
import android.text.SpannableStringBuilder;
import android.text.StaticLayout;
import android.text.TextUtils;
+import android.text.format.DateUtils;
import android.text.style.CharacterStyle;
import android.util.LruCache;
import android.util.Pair;
@@ -36,6 +37,7 @@
import com.android.mail.R;
import com.android.mail.providers.Conversation;
import com.android.mail.providers.Folder;
+import com.android.mail.providers.MessageInfo;
import com.android.mail.providers.UIProvider;
import java.util.ArrayList;
@@ -126,6 +128,8 @@
public int styledMessageInfoStringOffset;
+ private String mContentDescription;
+
/**
* Returns the view model for a conversation. If the model doesn't exist for this conversation
* null is returned. Note: this should only be called from the UI thread.
@@ -305,8 +309,37 @@
* Get conversation information to use for accessibility.
*/
public CharSequence getContentDescription(Context context) {
- return context.getString(R.string.content_description, conversation.subject,
- conversation.getSnippet());
+ if (mContentDescription == null) {
+ // If any are unread, get the first unread sender.
+ // If all are unread, get the first sender.
+ // If all are read, get the last sender.
+ String sender = "";
+ if (conversation.conversationInfo != null) {
+ String lastSender = null;
+ int last = conversation.conversationInfo.messageInfos != null ?
+ conversation.conversationInfo.messageInfos.size() - 1 : -1;
+ if (last != -1) {
+ lastSender = conversation.conversationInfo.messageInfos.get(last).sender;
+ }
+ if (conversation.read) {
+ sender = lastSender;
+ } else {
+ String firstUnread = null;
+ for (MessageInfo m : conversation.conversationInfo.messageInfos) {
+ if (!m.read) {
+ firstUnread = m.sender;
+ break;
+ }
+ }
+ sender = firstUnread;
+ }
+ }
+ String date = DateUtils.getRelativeTimeSpanString(context, conversation.dateMs)
+ .toString();
+ mContentDescription = context.getString(R.string.content_description, sender,
+ conversation.subject, date);
+ }
+ return mContentDescription;
}
/**
diff --git a/src/com/android/mail/ui/LeaveBehindItem.java b/src/com/android/mail/ui/LeaveBehindItem.java
index 8e29e53..5572623 100644
--- a/src/com/android/mail/ui/LeaveBehindItem.java
+++ b/src/com/android/mail/ui/LeaveBehindItem.java
@@ -201,7 +201,6 @@
}
}
-
public void startFadeInAnimation() {
if (!mFadingInText) {
mFadingInText = true;