Merge "Fixed bug where custo drawer remained open after power-off"
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index 4a56e1b..076f574 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -144,4 +144,10 @@
         super.onDetachedFromWindow();
         mBackground.setCallback(null);
     }
+
+    @Override
+    protected boolean onSetAlpha(int alpha) {
+        mPaint.setAlpha(alpha);
+        return super.onSetAlpha(alpha);
+    }
 }
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 03a4d0c..16116ce 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -271,8 +271,9 @@
                     dimAlpha = Math.max(0.0f, Math.min(1.0f, (dimAlpha * dimAlpha)));
                     alpha = 1.0f - dimAlpha;
                 }
-                if (Float.compare(alpha, layout.getAlpha()) != 0)
+                if (Float.compare(alpha, layout.getAlpha()) != 0) {
                     layout.setAlpha(alpha);
+                }
             }
         }
         super.dispatchDraw(canvas);
diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java
index 2413996..219a362 100644
--- a/src/com/android/launcher2/PagedViewCellLayout.java
+++ b/src/com/android/launcher2/PagedViewCellLayout.java
@@ -75,9 +75,9 @@
 
     @Override
     public void setAlpha(float alpha) {
-        super.setAlpha(alpha);
-        setChildrenAlpha(alpha);
         mHolographicAlpha = 1.0f - alpha;
+        setChildrenAlpha(alpha);
+        super.setAlpha(alpha);
     }
 
     @Override
diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java
index ea5e6d7..01f36dc 100644
--- a/src/com/android/launcher2/PagedViewIcon.java
+++ b/src/com/android/launcher2/PagedViewIcon.java
@@ -170,17 +170,9 @@
     @Override
     public void setAlpha(float alpha) {
         final float viewAlpha = sHolographicOutlineHelper.viewAlphaInterpolator(alpha);
-        mAlpha = (int) (viewAlpha * 255);
         final float holographicAlpha = sHolographicOutlineHelper.highlightAlphaInterpolator(alpha);
+        mAlpha = (int) (viewAlpha * 255);
         mHolographicAlpha = (int) (holographicAlpha * 255);
-
-        // WORKAROUND: until TextView handles canvas shadow layer alpha itself
-        int sRed = Color.red(mShadowColor);
-        int sGreen = Color.green(mShadowColor);
-        int sBlue = Color.blue(mShadowColor);
-        super.setShadowLayer(mShadowRadius, mShadowDx, mShadowDy, Color.argb(mAlpha, sRed, sGreen,
-                sBlue));
-
         super.setAlpha(viewAlpha);
     }
 
@@ -227,27 +219,17 @@
         }
     }
 
-    // WORKAROUND: until TextView handles canvas shadow layer alpha itself
-    float mShadowRadius, mShadowDx, mShadowDy;
-    int mShadowColor;
-    @Override
-    public void setShadowLayer(float radius, float dx, float dy, int color) {
-        mShadowRadius = radius;
-        mShadowDx = dx;
-        mShadowDy = dy;
-        mShadowColor = color;
-        super.setShadowLayer(radius, dx, dy, color);
-    }
-
     @Override
     protected void onDraw(Canvas canvas) {
+        // draw the view itself
         if (mIsHolographicUpdatePass) {
             // only clip to the text view (restore its alpha so that we get a proper outline)
             canvas.save();
             canvas.clipRect(mDrawableClipRect, Op.REPLACE);
-            super.onSetAlpha(255);
+            final float alpha = getAlpha();
+            super.setAlpha(1.0f);
             super.onDraw(canvas);
-            super.onSetAlpha(mAlpha);
+            super.setAlpha(alpha);
             canvas.restore();
         } else {
             if (mAlpha > 0) {
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index aa74f70..5d75c0f 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -469,6 +469,7 @@
         if (mIsSmall) {
             unshrink((CellLayout)v);
             mLauncher.onWorkspaceUnshrink();
+            return true;
         }
         return false;
     }