Fix RTL issue of ImageFloatingTextView am: dd8611fc5a

am: 4d590a91c2

Change-Id: I6a563e996bc93dd8f3a53b48c185319fdd1886de
This commit is contained in:
dongwan0605.kim
2016-09-23 22:17:33 +00:00
committed by android-build-merger

View File

@@ -40,6 +40,9 @@ public class ImageFloatingTextView extends TextView {
/** Number of lines from the top to indent */
private int mIndentLines;
/** Resolved layout direction */
private int mResolvedDirection = LAYOUT_DIRECTION_UNDEFINED;
public ImageFloatingTextView(Context context) {
this(context, null);
}
@@ -82,7 +85,7 @@ public class ImageFloatingTextView extends TextView {
margins[i] = endMargin;
}
}
if (getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
if (mResolvedDirection == LAYOUT_DIRECTION_RTL) {
builder.setIndents(margins, null);
} else {
builder.setIndents(null, margins);
@@ -91,6 +94,19 @@ public class ImageFloatingTextView extends TextView {
return builder.build();
}
@Override
public void onRtlPropertiesChanged(int layoutDirection) {
super.onRtlPropertiesChanged(layoutDirection);
if (layoutDirection != mResolvedDirection && isLayoutDirectionResolved()) {
mResolvedDirection = layoutDirection;
if (mIndentLines > 0) {
// Invalidate layout.
setHint(getHint());
}
}
}
@RemotableViewMethod
public void setHasImage(boolean hasImage) {
setNumIndentLines(hasImage ? 2 : 0);