Loading core/java/android/view/View.java +6 −4 Original line number Diff line number Diff line Loading @@ -14197,12 +14197,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ protected void resolveDrawables() { if (canResolveLayoutDirection()) { if (mBackground != null) { mBackground.setLayoutDirection(getLayoutDirection()); } mPrivateFlags2 |= PFLAG2_DRAWABLE_RESOLVED; onResolveDrawables(getLayoutDirection()); } } /** * Called when layout direction has been resolved. core/java/android/view/ViewGroup.java +0 −1 Original line number Diff line number Diff line Loading @@ -3384,7 +3384,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager if (child.isLayoutDirectionInherited()) { child.resetRtlProperties(); child.resolveRtlPropertiesIfNeeded(); } onViewAdded(child); Loading core/java/android/widget/Editor.java +19 −10 Original line number Diff line number Diff line Loading @@ -144,6 +144,8 @@ public class Editor { CharSequence mError; boolean mErrorWasChanged; ErrorPopup mErrorPopup; private int mLastLayoutDirection = -1; /** * This flag is set if the TextView tries to display an error before it * is attached to the window (so its position is still unknown). Loading Loading @@ -288,23 +290,30 @@ public class Editor { public void setError(CharSequence error, Drawable icon) { mError = TextUtils.stringOrSpannedString(error); mErrorWasChanged = true; final int layoutDirection = mTextView.getLayoutDirection(); if (mLastLayoutDirection != layoutDirection) { final Drawables dr = mTextView.mDrawables; if (dr != null) { switch (mTextView.getLayoutDirection()) { switch (layoutDirection) { default: case View.LAYOUT_DIRECTION_LTR: if (dr != null) { mTextView.setCompoundDrawables(dr.mDrawableLeft, dr.mDrawableTop, icon, dr.mDrawableBottom); } else { mTextView.setCompoundDrawables(null, null, icon, null); } break; case View.LAYOUT_DIRECTION_RTL: if (dr != null) { mTextView.setCompoundDrawables(icon, dr.mDrawableTop, dr.mDrawableRight, dr.mDrawableBottom); } else { mTextView.setCompoundDrawables(icon, null, null, null); } break; } } else { mTextView.setCompoundDrawables(null, null, icon, null); mLastLayoutDirection = layoutDirection; } if (mError == null) { if (mErrorPopup != null) { if (mErrorPopup.isShowing()) { Loading core/java/android/widget/TextView.java +4 −5 Original line number Diff line number Diff line Loading @@ -306,7 +306,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private Layout.Alignment mLayoutAlignment; private int mResolvedTextAlignment; private boolean mResolvedDrawables; private int mLastLayoutDirection = -1; /** * On some devices the fading edges add a performance penalty if used Loading Loading @@ -8260,16 +8260,16 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public void onResolveDrawables(int layoutDirection) { // No need to resolve twice if (mResolvedDrawables) { if (mLastLayoutDirection == layoutDirection) { return; } mLastLayoutDirection = layoutDirection; // No drawable to resolve if (mDrawables == null) { return; } // No relative drawable to resolve if (mDrawables.mDrawableStart == null && mDrawables.mDrawableEnd == null) { mResolvedDrawables = true; return; } Loading Loading @@ -8307,7 +8307,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener break; } updateDrawablesLayoutDirection(dr, layoutDirection); mResolvedDrawables = true; } private void updateDrawablesLayoutDirection(Drawables dr, int layoutDirection) { Loading @@ -8329,7 +8328,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @hide */ protected void resetResolvedDrawables() { mResolvedDrawables = false; mLastLayoutDirection = -1; } /** Loading Loading
core/java/android/view/View.java +6 −4 Original line number Diff line number Diff line Loading @@ -14197,12 +14197,14 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * @hide */ protected void resolveDrawables() { if (canResolveLayoutDirection()) { if (mBackground != null) { mBackground.setLayoutDirection(getLayoutDirection()); } mPrivateFlags2 |= PFLAG2_DRAWABLE_RESOLVED; onResolveDrawables(getLayoutDirection()); } } /** * Called when layout direction has been resolved.
core/java/android/view/ViewGroup.java +0 −1 Original line number Diff line number Diff line Loading @@ -3384,7 +3384,6 @@ public abstract class ViewGroup extends View implements ViewParent, ViewManager if (child.isLayoutDirectionInherited()) { child.resetRtlProperties(); child.resolveRtlPropertiesIfNeeded(); } onViewAdded(child); Loading
core/java/android/widget/Editor.java +19 −10 Original line number Diff line number Diff line Loading @@ -144,6 +144,8 @@ public class Editor { CharSequence mError; boolean mErrorWasChanged; ErrorPopup mErrorPopup; private int mLastLayoutDirection = -1; /** * This flag is set if the TextView tries to display an error before it * is attached to the window (so its position is still unknown). Loading Loading @@ -288,23 +290,30 @@ public class Editor { public void setError(CharSequence error, Drawable icon) { mError = TextUtils.stringOrSpannedString(error); mErrorWasChanged = true; final int layoutDirection = mTextView.getLayoutDirection(); if (mLastLayoutDirection != layoutDirection) { final Drawables dr = mTextView.mDrawables; if (dr != null) { switch (mTextView.getLayoutDirection()) { switch (layoutDirection) { default: case View.LAYOUT_DIRECTION_LTR: if (dr != null) { mTextView.setCompoundDrawables(dr.mDrawableLeft, dr.mDrawableTop, icon, dr.mDrawableBottom); } else { mTextView.setCompoundDrawables(null, null, icon, null); } break; case View.LAYOUT_DIRECTION_RTL: if (dr != null) { mTextView.setCompoundDrawables(icon, dr.mDrawableTop, dr.mDrawableRight, dr.mDrawableBottom); } else { mTextView.setCompoundDrawables(icon, null, null, null); } break; } } else { mTextView.setCompoundDrawables(null, null, icon, null); mLastLayoutDirection = layoutDirection; } if (mError == null) { if (mErrorPopup != null) { if (mErrorPopup.isShowing()) { Loading
core/java/android/widget/TextView.java +4 −5 Original line number Diff line number Diff line Loading @@ -306,7 +306,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private Layout.Alignment mLayoutAlignment; private int mResolvedTextAlignment; private boolean mResolvedDrawables; private int mLastLayoutDirection = -1; /** * On some devices the fading edges add a performance penalty if used Loading Loading @@ -8260,16 +8260,16 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener @Override public void onResolveDrawables(int layoutDirection) { // No need to resolve twice if (mResolvedDrawables) { if (mLastLayoutDirection == layoutDirection) { return; } mLastLayoutDirection = layoutDirection; // No drawable to resolve if (mDrawables == null) { return; } // No relative drawable to resolve if (mDrawables.mDrawableStart == null && mDrawables.mDrawableEnd == null) { mResolvedDrawables = true; return; } Loading Loading @@ -8307,7 +8307,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener break; } updateDrawablesLayoutDirection(dr, layoutDirection); mResolvedDrawables = true; } private void updateDrawablesLayoutDirection(Drawables dr, int layoutDirection) { Loading @@ -8329,7 +8328,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @hide */ protected void resetResolvedDrawables() { mResolvedDrawables = false; mLastLayoutDirection = -1; } /** Loading