diff options
author | Jin Cao <jinyan@google.com> | 2014-08-21 00:00:08 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-20 21:39:11 +0000 |
commit | 1c1e9a86189b1217099a31252ec196cbc9a9e55d (patch) | |
tree | 3c84645d9ccad2e78317712a86111213be588895 | |
parent | 8c805a8fe5ad65cc33b89366af096fab2e040d3a (diff) | |
parent | 4eb909e1ef9656dfc06d2518842357827dcfb068 (diff) | |
download | android_packages_apps_UnifiedEmail-1c1e9a86189b1217099a31252ec196cbc9a9e55d.tar.gz android_packages_apps_UnifiedEmail-1c1e9a86189b1217099a31252ec196cbc9a9e55d.tar.bz2 android_packages_apps_UnifiedEmail-1c1e9a86189b1217099a31252ec196cbc9a9e55d.zip |
Merge "[Quantum TL] support RTL for folders text fading" into ub-gmail-ur14-dev
-rw-r--r-- | src/com/android/mail/browse/ConversationItemView.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/com/android/mail/browse/ConversationItemView.java b/src/com/android/mail/browse/ConversationItemView.java index b47a70444..6893252f8 100644 --- a/src/com/android/mail/browse/ConversationItemView.java +++ b/src/com/android/mail/browse/ConversationItemView.java @@ -40,6 +40,7 @@ import android.graphics.Shader; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.graphics.drawable.InsetDrawable; +import android.support.v4.text.BidiFormatter; import android.support.v4.text.TextUtilsCompat; import android.support.v4.view.ViewCompat; import android.text.Layout.Alignment; @@ -249,10 +250,12 @@ public class ConversationItemView extends View */ static class ConversationItemFolderDisplayer extends FolderDisplayer { + private final BidiFormatter mFormatter; private int mFoldersCount; - public ConversationItemFolderDisplayer(Context context) { + public ConversationItemFolderDisplayer(Context context, BidiFormatter formatter) { super(context); + mFormatter = formatter; } @Override @@ -398,21 +401,23 @@ public class ConversationItemView extends View canvas.drawRoundRect(rect, sFolderRoundedCornerRadius, sFolderRoundedCornerRadius, sFoldersPaint); - // Draw the text. + // Draw the text based on the language locale. + final boolean isTextRtl = mFormatter.isRtl(folderString); sFoldersPaint.setColor(fgColor); sFoldersPaint.setStyle(Paint.Style.FILL); if (overflow[index]) { final int rightBorder = xLeft + measurements[index]; - final int x0 = (isRtl) ? xLeft + sFoldersOverflowGradientPadding : + final int x0 = (isTextRtl) ? xLeft + sFoldersOverflowGradientPadding : rightBorder - sFoldersOverflowGradientPadding; - final int x1 = (isRtl) ? xLeft + sFoldersInnerPadding : + final int x1 = (isTextRtl) ? xLeft + sFoldersInnerPadding : rightBorder - sFoldersInnerPadding; final Shader shader = new LinearGradient(x0, y, x1, y, fgColor, Utils.getTransparentColor(fgColor), Shader.TileMode.CLAMP); sFoldersPaint.setShader(shader); } - canvas.drawText(folderString, xLeft + sFoldersInnerPadding, - y + height - textBottomPadding, sFoldersPaint); + final int textX = (isTextRtl) ? xLeft + measurements[index] - sFoldersInnerPadding : + xLeft + sFoldersInnerPadding; + canvas.drawText(folderString, textX, y + height - textBottomPadding, sFoldersPaint); if (overflow[index]) { sFoldersPaint.setShader(null); } @@ -631,7 +636,8 @@ public class ConversationItemView extends View Utils.traceBeginSection("folder displayer"); // Initialize folder displayer. if (mHeader.folderDisplayer == null) { - mHeader.folderDisplayer = new ConversationItemFolderDisplayer(mContext); + mHeader.folderDisplayer = new ConversationItemFolderDisplayer(mContext, + mAdapter.getBidiFormatter()); } else { mHeader.folderDisplayer.reset(); } |