Fading out workspace when dragging to higlight dragged object.

Change-Id: I540ce145168a65a029d820d6c14a1e3070f8a5b0
diff --git a/src/com/android/launcher2/DragView.java b/src/com/android/launcher2/DragView.java
index 90b2083..79f9b81 100644
--- a/src/com/android/launcher2/DragView.java
+++ b/src/com/android/launcher2/DragView.java
@@ -32,7 +32,7 @@
 import com.android.launcher.R;
 
 public class DragView extends View {
-    private static float sDragAlpha = 0.8f;
+    private static float sDragAlpha = 1f;
 
     private Bitmap mBitmap;
     private Bitmap mCrossFadeBitmap;
@@ -75,7 +75,7 @@
         // Animate the view into the correct position
         mAnim = ValueAnimator.ofFloat(0.0f, 1.0f);
         mAnim.setDuration(150);
-        mAnim.setInterpolator(new DecelerateInterpolator(2.5f));
+        mAnim.setInterpolator(new DecelerateInterpolator(1.5f));
         mAnim.addUpdateListener(new AnimatorUpdateListener() {
             @Override
             public void onAnimationUpdate(ValueAnimator animation) {
@@ -88,7 +88,9 @@
                 mOffsetY += deltaY;
                 setScaleX(1f + (value * (scale - 1f)));
                 setScaleY(1f + (value * (scale - 1f)));
-                setAlpha(sDragAlpha * value + (1f - value));
+                if (sDragAlpha != 1f) {
+                    setAlpha(sDragAlpha * value + (1f - value));
+                }
 
                 if (getParent() == null) {
                     animation.cancel();
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index 184ea7a..a615b59 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -67,7 +67,7 @@
 
     private static final float OVERSCROLL_ACCELERATE_FACTOR = 2;
     private static final float OVERSCROLL_DAMP_FACTOR = 0.14f;
-   
+
     private static final float RETURN_TO_ORIGINAL_PAGE_THRESHOLD = 0.33f;
     // The page is moved more than halfway, automatically move to the next page on touch up.
     private static final float SIGNIFICANT_MOVE_THRESHOLD = 0.4f;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 0d7498a..1643be5 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -210,6 +210,10 @@
     public static final int COMPLETE_TWO_STAGE_WIDGET_DROP_ANIMATION = 1;
     public static final int CANCEL_TWO_STAGE_WIDGET_DROP_ANIMATION = 2;
 
+    // Relating to workspace drag fade out
+    private float mDragFadeOutAlpha;
+    private int mDragFadeOutDuration;
+
     // These variables are used for storing the initial and final values during workspace animations
     private int mSavedScrollX;
     private float mSavedRotationY;
@@ -261,8 +265,10 @@
         // With workspace, data is available straight from the get-go
         setDataIsReady();
 
-        mFadeInAdjacentScreens =
-            getResources().getBoolean(R.bool.config_workspaceFadeAdjacentScreens);
+        final Resources res = getResources();
+        mFadeInAdjacentScreens = res.getBoolean(R.bool.config_workspaceFadeAdjacentScreens);
+        mDragFadeOutAlpha = res.getInteger(R.integer.config_dragFadeOutAlpha) / 100f;
+        mDragFadeOutDuration = res.getInteger(R.integer.config_dragFadeOutDuration);
         mWallpaperManager = WallpaperManager.getInstance(context);
 
         int cellCountX = DEFAULT_CELL_COUNT_X;
@@ -271,7 +277,6 @@
         TypedArray a = context.obtainStyledAttributes(attrs,
                 R.styleable.Workspace, defStyle, 0);
 
-        final Resources res = context.getResources();
         if (LauncherApplication.isScreenLarge()) {
             // Determine number of rows/columns dynamically
             // TODO: This code currently fails on tablets with an aspect ratio < 1.3.
@@ -358,12 +363,18 @@
         mIsDragOccuring = true;
         updateChildrenLayersEnabled();
         mLauncher.lockScreenOrientationOnLargeUI();
+
+        // Fade out the workspace slightly to highlight the currently dragging item
+        animate().alpha(mDragFadeOutAlpha).setDuration(mDragFadeOutDuration).start();
     }
 
     public void onDragEnd() {
         mIsDragOccuring = false;
         updateChildrenLayersEnabled();
         mLauncher.unlockScreenOrientationOnLargeUI();
+
+        // Fade the workspace back in after we have completed dragging
+        animate().alpha(1f).setDuration(mDragFadeOutDuration).start();
     }
 
     /**