Dim non-forefront recent pages

Also move updateCurveProperties to computeScroll instead of scrollTo.

Change-Id: Ibb380f0122185b7fe93541daf58d5bda916c89c0
diff --git a/quickstep/src/com/android/quickstep/RecentsView.java b/quickstep/src/com/android/quickstep/RecentsView.java
index ba88f99..34ed7f1 100644
--- a/quickstep/src/com/android/quickstep/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/RecentsView.java
@@ -48,6 +48,11 @@
     /** A circular curve of x from 0 to 1, where 0 is the center of the screen and 1 is the edge. */
     private static final TimeInterpolator CURVE_INTERPOLATOR
         = x -> (float) (1 - Math.sqrt(1 - Math.pow(x, 2)));
+    /**
+     * The alpha of a black scrim on a page in the carousel as it leaves the screen.
+     * In the resting position of the carousel, the adjacent pages have about half this scrim.
+     */
+    private static final float MAX_PAGE_SCRIM_ALPHA = 0.8f;
 
     private boolean mOverviewStateEnabled;
     private boolean mTaskStackListenerRegistered;
@@ -181,8 +186,8 @@
     }
 
     @Override
-    public void scrollTo(int x, int y) {
-        super.scrollTo(x, y);
+    public void computeScroll() {
+        super.computeScroll();
         updateCurveProperties();
     }
 
@@ -212,6 +217,10 @@
             // Make sure the biggest card (i.e. the one in front) shows on top of the adjacent ones.
             page.setTranslationZ(scale);
             page.setTranslationX((screenCenter - pageCenter) * curveInterpolation * CURVE_FACTOR);
+            if (page instanceof TaskView) {
+                TaskThumbnailView thumbnail = ((TaskView) page).getThumbnail();
+                thumbnail.setDimAlpha(1 - curveInterpolation * MAX_PAGE_SCRIM_ALPHA);
+            }
         }
     }
 }