diff options
| -rw-r--r-- | core/java/android/view/View.java | 16 | ||||
| -rw-r--r-- | core/java/android/widget/ImageView.java | 12 |
2 files changed, 5 insertions, 23 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 3ee6a8d1a179..784164d243f1 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -18079,13 +18079,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, * to clear the previous drawable. setVisible first while we still have the callback set. */ if (mBackground != null) { - // It's possible for this method to be invoked from the View constructor before - // subclass constructors have run. Drawables can and should trigger invalidations - // and other activity with their callback on visibility changes, which shouldn't - // happen before subclass constructors finish. However, we won't have set the - // drawable as visible until the view becomes attached. This guard below keeps - // multiple calls to this method from constructors from causing issues. - if (mBackground.isVisible()) { + if (isAttachedToWindow()) { mBackground.setVisible(false, false); } mBackground.setCallback(null); @@ -18320,13 +18314,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback, } if (mForegroundInfo.mDrawable != null) { - // It's possible for this method to be invoked from the View constructor before - // subclass constructors have run. Drawables can and should trigger invalidations - // and other activity with their callback on visibility changes, which shouldn't - // happen before subclass constructors finish. However, we won't have set the - // drawable as visible until the view becomes attached. This guard below keeps - // multiple calls to this method from constructors from causing issues. - if (mForegroundInfo.mDrawable.isVisible()) { + if (isAttachedToWindow()) { mForegroundInfo.mDrawable.setVisible(false, false); } mForegroundInfo.mDrawable.setCallback(null); diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java index 02065779ef91..222a040d2b3c 100644 --- a/core/java/android/widget/ImageView.java +++ b/core/java/android/widget/ImageView.java @@ -911,17 +911,11 @@ public class ImageView extends View { } if (mDrawable != null) { - // It's possible for this method to be invoked from the constructor before - // subclass constructors have run. Drawables can and should trigger invalidations - // and other activity with their callback on visibility changes, which shouldn't - // happen before subclass constructors finish. However, we won't have set the - // drawable as visible until the view becomes attached. This guard below keeps - // multiple calls to this method from constructors from causing issues. - if (mDrawable.isVisible()) { - mDrawable.setVisible(false, false); - } mDrawable.setCallback(null); unscheduleDrawable(mDrawable); + if (isAttachedToWindow()) { + mDrawable.setVisible(false, false); + } } mDrawable = d; |