summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2014-03-05 13:02:00 -0800
committer John Reck <jreck@google.com> 2014-03-05 13:02:00 -0800
commiteef19cc2ee55de75817db3c5ce22c712a97aeb77 (patch)
tree9892b667fd5553668cfbea95a50ba4960d51618d
parent24ba99c235c328824ec8bcc1bf0382972f5b1616 (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.java8
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;