diff options
| author | 2014-03-05 13:02:00 -0800 | |
|---|---|---|
| committer | 2014-03-05 13:02:00 -0800 | |
| commit | eef19cc2ee55de75817db3c5ce22c712a97aeb77 (patch) | |
| tree | 9892b667fd5553668cfbea95a50ba4960d51618d | |
| parent | 24ba99c235c328824ec8bcc1bf0382972f5b1616 (diff) | |
DisplayList lifecycle fixes
Bug: 13324014
Bug: 13324861
Don't use a DisplayList for the background if the View is detached.
mAttachInfo can be null in onDetachedFromWindow
Change-Id: I6d1413b956dd35cd2f5256860223013d2a570870
| -rw-r--r-- | core/java/android/view/View.java | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 31b8b04a03c3..a57b3111cae7 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -13128,7 +13128,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, private void cleanupDraw() { resetDisplayList(); - mAttachInfo.mViewRootImpl.cancelInvalidate(this); + if (mAttachInfo != null) { + mAttachInfo.mViewRootImpl.cancelInvalidate(this); + } } /** @@ -15254,9 +15256,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, mBackgroundSizeChanged = false; } - // Attempt to use a display list if requested. - if (canvas != null && canvas.isHardwareAccelerated()) { + if (canvas.isHardwareAccelerated() && mAttachInfo != null + && mAttachInfo.mHardwareRenderer != null) { mBackgroundDisplayList = getDrawableDisplayList(background, mBackgroundDisplayList); final DisplayList displayList = mBackgroundDisplayList; |