summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/GLES20Layer.java5
-rw-r--r--core/java/android/view/View.java3
-rw-r--r--core/java/android/view/ViewGroup.java1
-rw-r--r--core/java/android/view/ViewRootImpl.java10
4 files changed, 13 insertions, 6 deletions
diff --git a/core/java/android/view/GLES20Layer.java b/core/java/android/view/GLES20Layer.java
index a491a0b5a322..fd3b9e55b111 100644
--- a/core/java/android/view/GLES20Layer.java
+++ b/core/java/android/view/GLES20Layer.java
@@ -54,7 +54,10 @@ abstract class GLES20Layer extends HardwareLayer {
@Override
void destroy() {
- if (mFinalizer != null) mFinalizer.destroy();
+ if (mFinalizer != null) {
+ mFinalizer.destroy();
+ mFinalizer = null;
+ }
mLayer = 0;
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 296e6be2f163..580d450ae3db 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -9676,7 +9676,8 @@ public class View implements Drawable.Callback2, KeyEvent.Callback, Accessibilit
* @return A HardwareLayer ready to render, or null if an error occurred.
*/
HardwareLayer getHardwareLayer() {
- if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null) {
+ if (mAttachInfo == null || mAttachInfo.mHardwareRenderer == null ||
+ !mAttachInfo.mHardwareRenderer.isEnabled()) {
return null;
}
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index c89e0397b0f6..7a1acfda4bc1 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -36,7 +36,6 @@ import android.util.Log;
import android.util.SparseArray;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
-import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 9460fe5e979c..0bd5a2a572a6 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -1537,7 +1537,8 @@ public final class ViewRootImpl extends Handler implements ViewParent,
}
}
- boolean cancelDraw = attachInfo.mTreeObserver.dispatchOnPreDraw();
+ boolean cancelDraw = attachInfo.mTreeObserver.dispatchOnPreDraw() ||
+ viewVisibility != View.VISIBLE;
if (!cancelDraw && !newSurface) {
if (mPendingTransitions != null && mPendingTransitions.size() > 0) {
@@ -1591,8 +1592,11 @@ public final class ViewRootImpl extends Handler implements ViewParent,
if (fullRedrawNeeded) {
mFullRedrawNeeded = true;
}
- // Try again
- scheduleTraversals();
+
+ if (viewVisibility == View.VISIBLE) {
+ // Try again
+ scheduleTraversals();
+ }
}
}