From eef19cc2ee55de75817db3c5ce22c712a97aeb77 Mon Sep 17 00:00:00 2001 From: John Reck Date: Wed, 5 Mar 2014 13:02:00 -0800 Subject: 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 --- core/java/android/view/View.java | 8 +++++--- 1 file 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; -- cgit v1.2.3-59-g8ed1b