Log if a view fails to fit in the drawing cache

Large software layers won't draw if they're larger than the size of the drawing
cache, in which case this log will be triggered.

bug:7078391
Change-Id: Ib42a060b8e3b3642417df9243a086aa15b2989b1
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b6f07fa..7cf2202 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -12537,10 +12537,13 @@
             final boolean opaque = drawingCacheBackgroundColor != 0 || isOpaque();
             final boolean use32BitCache = attachInfo != null && attachInfo.mUse32BitDrawingCache;
 
-            if (width <= 0 || height <= 0 ||
-                     // Projected bitmap size in bytes
-                    (width * height * (opaque && !use32BitCache ? 2 : 4) >
-                            ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize())) {
+            final int projectedBitmapSize = width * height * (opaque && !use32BitCache ? 2 : 4);
+            final int drawingCacheSize =
+                    ViewConfiguration.get(mContext).getScaledMaximumDrawingCacheSize();
+            if (width <= 0 || height <= 0 || projectedBitmapSize > drawingCacheSize) {
+                Log.w(VIEW_LOG_TAG, "View too large to fit into drawing cache, needs "
+                      + projectedBitmapSize + " bytes, only "
+                      + drawingCacheSize + " available");
                 destroyDrawingCache();
                 mCachingFailed = true;
                 return;