Merging Motorola's patch to disable apps when is safe mode.

issue: 16044192

Change-Id: I10069dcdf459ecc71361271e883eabb743d77822
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 3f619a8..ffa7ec3 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -51,8 +51,6 @@
 
     private static final boolean DEBUG = false;
 
-    private int mPrevAlpha = -1;
-
     private HolographicOutlineHelper mOutlineHelper;
     private final Canvas mTempCanvas = new Canvas();
     private final Rect mTempRect = new Rect();
@@ -124,14 +122,22 @@
         }
     }
 
-    public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache) {
+    public void applyFromShortcutInfo(ShortcutInfo info, IconCache iconCache,
+            boolean setDefaultPadding) {
         Bitmap b = info.getIcon(iconCache);
         LauncherAppState app = LauncherAppState.getInstance();
-        DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
 
-        Drawable iconDrawable = Utilities.createIconDrawable(b);
+        FastBitmapDrawable iconDrawable = Utilities.createIconDrawable(b);
+        if (info.isDisabled) {
+            iconDrawable.setSaturation(0);
+            iconDrawable.setBrightness(20);
+        }
+
         setCompoundDrawables(null, iconDrawable, null, null);
-        setCompoundDrawablePadding(grid.iconDrawablePaddingPx);
+        if (setDefaultPadding) {
+            DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
+            setCompoundDrawablePadding(grid.iconDrawablePaddingPx);
+        }
         if (info.contentDescription != null) {
             setContentDescription(info.contentDescription);
         }
@@ -417,10 +423,6 @@
 
     @Override
     protected boolean onSetAlpha(int alpha) {
-        if (mPrevAlpha != alpha) {
-            mPrevAlpha = alpha;
-            super.onSetAlpha(alpha);
-        }
         return true;
     }