Remove USE_DISPLAY_LIST_PROPERTIES flag

This flag was still hanging around pending any need to disable
DisplayList properties. But things seem stable, so it's time to clean up
and simplify the code.

At the same time, I reduced redundance in DisplayList dimensions. We
used to call drawDisplayList() with width/height parameters that were
used to do a clip reject. This is redundant with the DisplayList properties
that set the bounds of the DisplayList; the left/right and top/bottom properties
represent the same width/height properties formerly used in drawDisplayList().
The new approach is to not pass dimensions to drawDisplayList(), but to
instead pull those dimensions directly from the DisplayList when needed.

Change-Id: I8871beff03b1d4be95f7c6e079c31a71d31e0c56
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index a299141..a833cbe 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -1531,14 +1531,6 @@
     static final ThreadLocal<Rect> sThreadLocal = new ThreadLocal<Rect>();
 
     /**
-     * Temporary flag, used to enable processing of View properties in the native DisplayList
-     * object instead of during draw(). Soon to be enabled by default for hardware-accelerated
-     * apps.
-     * @hide
-     */
-    public static final boolean USE_DISPLAY_LIST_PROPERTIES = true;
-
-    /**
      * Map used to store views' tags.
      */
     private SparseArray<Object> mKeyedTags;
@@ -8269,7 +8261,7 @@
         info.mMatrixDirty = true;
 
         invalidateViewProperty(false, false);
-        if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+        if (mDisplayList != null) {
             mDisplayList.setCameraDistance(-Math.abs(distance) / dpi);
         }
     }
@@ -8311,7 +8303,7 @@
             info.mRotation = rotation;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setRotation(rotation);
             }
         }
@@ -8358,7 +8350,7 @@
             info.mRotationY = rotationY;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setRotationY(rotationY);
             }
         }
@@ -8405,7 +8397,7 @@
             info.mRotationX = rotationX;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setRotationX(rotationX);
             }
         }
@@ -8444,7 +8436,7 @@
             info.mScaleX = scaleX;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setScaleX(scaleX);
             }
         }
@@ -8483,7 +8475,7 @@
             info.mScaleY = scaleY;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setScaleY(scaleY);
             }
         }
@@ -8530,7 +8522,7 @@
             info.mPivotX = pivotX;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setPivotX(pivotX);
             }
         }
@@ -8576,7 +8568,7 @@
             info.mPivotY = pivotY;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setPivotY(pivotY);
             }
         }
@@ -8642,7 +8634,7 @@
             } else {
                 mPrivateFlags &= ~ALPHA_SET;
                 invalidateViewProperty(true, false);
-                if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+                if (mDisplayList != null) {
                     mDisplayList.setAlpha(alpha);
                 }
             }
@@ -8669,7 +8661,7 @@
                 return true;
             } else {
                 mPrivateFlags &= ~ALPHA_SET;
-                if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+                if (mDisplayList != null) {
                     mDisplayList.setAlpha(alpha);
                 }
             }
@@ -8721,7 +8713,7 @@
             int oldHeight = mBottom - mTop;
 
             mTop = top;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setTop(mTop);
             }
 
@@ -8790,7 +8782,7 @@
             int oldHeight = mBottom - mTop;
 
             mBottom = bottom;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setBottom(mBottom);
             }
 
@@ -8853,7 +8845,7 @@
             int height = mBottom - mTop;
 
             mLeft = left;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setLeft(left);
             }
 
@@ -8869,9 +8861,6 @@
             }
             mBackgroundSizeChanged = true;
             invalidateParentIfNeeded();
-            if (USE_DISPLAY_LIST_PROPERTIES) {
-
-            }
         }
     }
 
@@ -8916,7 +8905,7 @@
             int height = mBottom - mTop;
 
             mRight = right;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setRight(mRight);
             }
 
@@ -9013,7 +9002,7 @@
             info.mTranslationX = translationX;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setTranslationX(translationX);
             }
         }
@@ -9050,7 +9039,7 @@
             info.mTranslationY = translationY;
             info.mMatrixDirty = true;
             invalidateViewProperty(false, true);
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setTranslationY(translationY);
             }
         }
@@ -9161,7 +9150,7 @@
             final boolean matrixIsIdentity = mTransformationInfo == null
                     || mTransformationInfo.mMatrixIsIdentity;
             if (matrixIsIdentity) {
-                if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+                if (mDisplayList != null) {
                     invalidateViewProperty(false, false);
                 } else {
                     final ViewParent p = mParent;
@@ -9189,7 +9178,7 @@
 
             mTop += offset;
             mBottom += offset;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.offsetTopBottom(offset);
                 invalidateViewProperty(false, false);
             } else {
@@ -9212,7 +9201,7 @@
             final boolean matrixIsIdentity = mTransformationInfo == null
                     || mTransformationInfo.mMatrixIsIdentity;
             if (matrixIsIdentity) {
-                if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+                if (mDisplayList != null) {
                     invalidateViewProperty(false, false);
                 } else {
                     final ViewParent p = mParent;
@@ -9237,7 +9226,7 @@
 
             mLeft += offset;
             mRight += offset;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.offsetLeftRight(offset);
                 invalidateViewProperty(false, false);
             } else {
@@ -9666,8 +9655,7 @@
      * list properties are not being used in this view
      */
     void invalidateViewProperty(boolean invalidateParent, boolean forceRedraw) {
-        if (!USE_DISPLAY_LIST_PROPERTIES || mDisplayList == null ||
-                (mPrivateFlags & DRAW_ANIMATION) == DRAW_ANIMATION) {
+        if (mDisplayList == null || (mPrivateFlags & DRAW_ANIMATION) == DRAW_ANIMATION) {
             if (invalidateParent) {
                 invalidateParentCaches();
             }
@@ -11759,7 +11747,7 @@
                 int layerType = (
                         !(mParent instanceof ViewGroup) || ((ViewGroup)mParent).mDrawLayers) ?
                         getLayerType() : LAYER_TYPE_NONE;
-                if (!isLayer && layerType != LAYER_TYPE_NONE && USE_DISPLAY_LIST_PROPERTIES) {
+                if (!isLayer && layerType != LAYER_TYPE_NONE) {
                     if (layerType == LAYER_TYPE_HARDWARE) {
                         final HardwareLayer layer = getHardwareLayer();
                         if (layer != null && layer.isValid()) {
@@ -11782,9 +11770,6 @@
 
                     computeScroll();
 
-                    if (!USE_DISPLAY_LIST_PROPERTIES) {
-                        restoreCount = canvas.save();
-                    }
                     canvas.translate(-mScrollX, -mScrollY);
                     if (!isLayer) {
                         mPrivateFlags |= DRAWN | DRAWING_CACHE_VALID;
@@ -11799,16 +11784,11 @@
                     }
                 }
             } finally {
-                if (USE_DISPLAY_LIST_PROPERTIES) {
-                    canvas.restoreToCount(restoreCount);
-                }
                 canvas.onPostDraw();
 
                 displayList.end();
-                if (USE_DISPLAY_LIST_PROPERTIES) {
-                    displayList.setCaching(caching);
-                }
-                if (isLayer && USE_DISPLAY_LIST_PROPERTIES) {
+                displayList.setCaching(caching);
+                if (isLayer) {
                     displayList.setLeftTopRightBottom(0, 0, width, height);
                 } else {
                     setDisplayListProperties(displayList);
@@ -12400,7 +12380,7 @@
      * previously-set transform values
      */
     void setDisplayListProperties(DisplayList displayList) {
-        if (USE_DISPLAY_LIST_PROPERTIES && displayList != null) {
+        if (displayList != null) {
             displayList.setLeftTopRightBottom(mLeft, mTop, mRight, mBottom);
             displayList.setHasOverlappingRendering(hasOverlappingRendering());
             if (mParent instanceof ViewGroup) {
@@ -12460,8 +12440,7 @@
      * to be called from anywhere else other than ViewGroup.drawChild().
      */
     boolean draw(Canvas canvas, ViewGroup parent, long drawingTime) {
-        boolean useDisplayListProperties = USE_DISPLAY_LIST_PROPERTIES && mAttachInfo != null &&
-                mAttachInfo.mHardwareAccelerated;
+        boolean useDisplayListProperties = mAttachInfo != null && mAttachInfo.mHardwareAccelerated;
         boolean more = false;
         final boolean childHasIdentityMatrix = hasIdentityMatrix();
         final int flags = parent.mGroupFlags;
@@ -12722,8 +12701,7 @@
                     }
                 } else {
                     mPrivateFlags &= ~DIRTY_MASK;
-                    ((HardwareCanvas) canvas).drawDisplayList(displayList,
-                            mRight - mLeft, mBottom - mTop, null, flags);
+                    ((HardwareCanvas) canvas).drawDisplayList(displayList, null, flags);
                 }
             }
         } else if (cache != null) {
@@ -13211,7 +13189,7 @@
             mTop = top;
             mRight = right;
             mBottom = bottom;
-            if (USE_DISPLAY_LIST_PROPERTIES && mDisplayList != null) {
+            if (mDisplayList != null) {
                 mDisplayList.setLeftTopRightBottom(mLeft, mTop, mRight, mBottom);
             }