TextureView works best when it draws stuff.
Bug #5391188
Change-Id: I5e754881ccb08ff288ebd60de77282c9cbcf3f86
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index c974ba1..d57132a 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -250,6 +250,11 @@
return LAYER_TYPE_HARDWARE;
}
+ @Override
+ boolean hasStaticLayer() {
+ return true;
+ }
+
/**
* Calling this method has no effect.
*/
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 2ebe756..d193d6e 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -10001,6 +10001,15 @@
}
/**
+ * Indicates whether this view has a static layer. A view with layer type
+ * {@link #LAYER_TYPE_NONE} is a static layer. Other types of layers are
+ * dynamic.
+ */
+ boolean hasStaticLayer() {
+ return mLayerType == LAYER_TYPE_NONE;
+ }
+
+ /**
* Indicates what type of layer is currently associated with this view. By default
* a view does not have a layer, and the layer type is {@link #LAYER_TYPE_NONE}.
* Refer to the documentation of {@link #setLayerType(int, android.graphics.Paint)}
diff --git a/core/java/android/view/ViewGroup.java b/core/java/android/view/ViewGroup.java
index ddb982a..fb0d80a 100644
--- a/core/java/android/view/ViewGroup.java
+++ b/core/java/android/view/ViewGroup.java
@@ -2560,8 +2560,8 @@
final View[] children = mChildren;
for (int i = 0; i < count; i++) {
final View child = children[i];
- if (((child.mViewFlags & VISIBILITY_MASK) == VISIBLE ||
- child.getAnimation() != null) && child.getLayerType() == LAYER_TYPE_NONE) {
+ if (((child.mViewFlags & VISIBILITY_MASK) == VISIBLE || child.getAnimation() != null) &&
+ child.hasStaticLayer()) {
child.mRecreateDisplayList = (child.mPrivateFlags & INVALIDATED) == INVALIDATED;
child.mPrivateFlags &= ~INVALIDATED;
child.getDisplayList();
diff --git a/libs/hwui/TextDropShadowCache.h b/libs/hwui/TextDropShadowCache.h
index 28dba13..e2bdde1 100644
--- a/libs/hwui/TextDropShadowCache.h
+++ b/libs/hwui/TextDropShadowCache.h
@@ -81,7 +81,7 @@
LTE_INT(flags) {
LTE_INT(italicStyle) {
LTE_INT(scaleX) {
- return strncmp16(text, rhs.text, len >> 1) < 0;
+ return memcmp(text, rhs.text, len) < 0;
}
}
}