Revert "Revert "Clear the bitmap associated with canvases.""

This reverts commit 4e012846cd09caa85b018c36810e9a64adb87640.
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index e9c22ff..e5fe7bd 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -419,6 +419,7 @@
             mCanvas.save();
             preview.draw(mCanvas);
             mCanvas.restore();
+            mCanvas.setBitmap(null);
             createItemInfo.spanX = createItemInfo.spanY = 1;
         }
 
@@ -699,6 +700,7 @@
                         c.save();
                         c.drawBitmap(b, 0, 0, null);
                         c.restore();
+                        c.setBitmap(null);
 
                         images.add(outline);
                     }
@@ -747,6 +749,7 @@
             d.setBounds(x, y, x + w, y + h);
             d.draw(c);
             d.setBounds(oldBounds); // Restore the bounds
+            c.setBitmap(null);
         }
     }
     private Bitmap getShortcutPreview(ResolveInfo info, int cellWidth, int cellHeight) {
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index 476d063..bd3a4bd 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -200,6 +200,7 @@
         canvas.setBitmap(b);
         drawWithPadding(canvas, padding);
         mOutlineHelper.applyExtraThickExpensiveOutlineWithBlur(b, canvas, glowColor, outlineColor);
+        canvas.setBitmap(null);
 
         return b;
     }
diff --git a/src/com/android/launcher2/CachedTextView.java b/src/com/android/launcher2/CachedTextView.java
index ac2cc3b..f9f68a0 100644
--- a/src/com/android/launcher2/CachedTextView.java
+++ b/src/com/android/launcher2/CachedTextView.java
@@ -130,6 +130,7 @@
             setAlpha(prevAlpha);
             mIsBuildingCache = false;
             mCacheCanvas.restore();
+            mCacheCanvas.setBitmap(null);
 
             // A hack-- we set the text to be one space (we don't make it empty just to avoid any
             // potential issues with text measurement, like line height, etc.) so that the text view
diff --git a/src/com/android/launcher2/HolographicOutlineHelper.java b/src/com/android/launcher2/HolographicOutlineHelper.java
index d2e1e7e..748d89e 100644
--- a/src/com/android/launcher2/HolographicOutlineHelper.java
+++ b/src/com/android/launcher2/HolographicOutlineHelper.java
@@ -199,6 +199,7 @@
                 mHolographicPaint);
 
         // cleanup
+        srcDstCanvas.setBitmap(null);
         brightOutline.recycle();
         thickOuterBlur.recycle();
         thickInnerBlur.recycle();
diff --git a/src/com/android/launcher2/IconCache.java b/src/com/android/launcher2/IconCache.java
index 3dc7808..04f97f3 100644
--- a/src/com/android/launcher2/IconCache.java
+++ b/src/com/android/launcher2/IconCache.java
@@ -104,6 +104,7 @@
         Canvas c = new Canvas(b);
         d.setBounds(0, 0, b.getWidth(), b.getHeight());
         d.draw(c);
+        c.setBitmap(null);
         return b;
     }
 
diff --git a/src/com/android/launcher2/Utilities.java b/src/com/android/launcher2/Utilities.java
index 7758333..c63c822 100644
--- a/src/com/android/launcher2/Utilities.java
+++ b/src/com/android/launcher2/Utilities.java
@@ -145,6 +145,7 @@
             icon.setBounds(left, top, left+width, top+height);
             icon.draw(canvas);
             icon.setBounds(sOldBounds);
+            canvas.setBitmap(null);
 
             return bitmap;
         }
@@ -211,6 +212,8 @@
             
             canvas.drawBitmap(bitmap, 0.0f, 0.0f, sDisabledPaint);
 
+            canvas.setBitmap(null);
+
             return disabled;
         }
     }
@@ -327,6 +330,7 @@
                 c.drawText(lineText, x, y, mTextPaint);
             }
 
+            c.setBitmap(null);
             return b;
         }
 
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 560448e..26c00ad 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1985,6 +1985,7 @@
         canvas.setBitmap(b);
         drawDragView(v, canvas, padding, true);
         mOutlineHelper.applyOuterBlur(b, canvas, outlineColor);
+        canvas.setBitmap(null);
 
         return b;
     }
@@ -2001,6 +2002,7 @@
         canvas.setBitmap(b);
         drawDragView(v, canvas, padding, false);
         mOutlineHelper.applyMediumExpensiveOutlineWithBlur(b, canvas, outlineColor, outlineColor);
+        canvas.setBitmap(null);
         return b;
     }
 
@@ -2027,6 +2029,7 @@
         p.setFilterBitmap(true);
         canvas.drawBitmap(orig, src, dst, p);
         mOutlineHelper.applyMediumExpensiveOutlineWithBlur(b, canvas, outlineColor, outlineColor);
+        canvas.setBitmap(null);
 
         return b;
     }
@@ -2050,6 +2053,7 @@
         canvas.drawRoundRect(new RectF(inset, inset, iconWidth - inset, iconHeight - inset),
                 rectRadius, rectRadius, mExternalDragOutlinePaint);
         mOutlineHelper.applyMediumExpensiveOutlineWithBlur(b, canvas, outlineColor, outlineColor);
+        canvas.setBitmap(null);
         return b;
     }