summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-06-20 23:58:34 +0000
committerAndroid Build Merger (Role) <noreply-android-build-merger@google.com>2018-06-20 23:58:34 +0000
commit913171a692b8209c70cf3e59c4d4cb4dda0ae121 (patch)
tree8e09aba2ec3828d2196271a5e8f5e4f62dc072ef /quickstep
parent15caa4e90ff26d6cfcfbd65e0d509f26e2c8deb0 (diff)
parent17be4e71b2f6733b4ea4dd52c3a46e8b5ec0d360 (diff)
downloadandroid_packages_apps_Trebuchet-913171a692b8209c70cf3e59c4d4cb4dda0ae121.tar.gz
android_packages_apps_Trebuchet-913171a692b8209c70cf3e59c4d4cb4dda0ae121.tar.bz2
android_packages_apps_Trebuchet-913171a692b8209c70cf3e59c4d4cb4dda0ae121.zip
[automerger] Adjust interpolators when swiping from overview to all apps am: 17be4e71b2
Change-Id: I8a95de51e5b74cb8d3c80539c2db8ec067e1b660
Diffstat (limited to 'quickstep')
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/PortraitStatesTouchController.java54
-rw-r--r--quickstep/src/com/android/quickstep/LongSwipeHelper.java9
-rw-r--r--quickstep/src/com/android/quickstep/views/ShelfScrimView.java9
3 files changed, 59 insertions, 13 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/PortraitStatesTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/PortraitStatesTouchController.java
index bcc42699c..0eead8883 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/PortraitStatesTouchController.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/PortraitStatesTouchController.java
@@ -18,7 +18,11 @@ package com.android.launcher3.uioverrides;
import static com.android.launcher3.LauncherState.ALL_APPS;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.OVERVIEW;
+import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_ALL_APPS_FADE;
+import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_FADE;
import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_VERTICAL_PROGRESS;
+import static com.android.launcher3.anim.Interpolators.ACCEL;
+import static com.android.launcher3.anim.Interpolators.DEACCEL;
import static com.android.launcher3.anim.Interpolators.LINEAR;
import android.animation.TimeInterpolator;
@@ -51,6 +55,16 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
private static final String TAG = "PortraitStatesTouchCtrl";
+ /**
+ * The progress at which all apps content will be fully visible when swiping up from overview.
+ */
+ private static final float ALL_APPS_CONTENT_FADE_THRESHOLD = 0.08f;
+
+ /**
+ * The progress at which recents will begin fading out when swiping up from overview.
+ */
+ private static final float RECENTS_FADE_THRESHOLD = 0.88f;
+
private InterpolatorWrapper mAllAppsInterpolatorWrapper = new InterpolatorWrapper();
// If true, we will finish the current animation instantly on second touch.
@@ -125,7 +139,38 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
AnimatorSetBuilder builder = new AnimatorSetBuilder();
builder.setInterpolator(ANIM_VERTICAL_PROGRESS, mAllAppsInterpolatorWrapper);
+ return builder;
+ }
+
+ public static AnimatorSetBuilder getOverviewToAllAppsAnimation() {
+ AnimatorSetBuilder builder = new AnimatorSetBuilder();
+ builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(ACCEL,
+ 0, ALL_APPS_CONTENT_FADE_THRESHOLD));
+ builder.setInterpolator(ANIM_OVERVIEW_FADE, Interpolators.clampToProgress(DEACCEL,
+ RECENTS_FADE_THRESHOLD, 1));
+ return builder;
+ }
+
+ private AnimatorSetBuilder getAllAppsToOverviewAnimation() {
+ AnimatorSetBuilder builder = new AnimatorSetBuilder();
+ builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(DEACCEL,
+ 1 - ALL_APPS_CONTENT_FADE_THRESHOLD, 1));
+ builder.setInterpolator(ANIM_OVERVIEW_FADE, Interpolators.clampToProgress(ACCEL,
+ 0f, 1 - RECENTS_FADE_THRESHOLD));
+ return builder;
+ }
+ @Override
+ protected AnimatorSetBuilder getAnimatorSetBuilderForStates(LauncherState fromState,
+ LauncherState toState) {
+ AnimatorSetBuilder builder = new AnimatorSetBuilder();
+ if (fromState == NORMAL && toState == OVERVIEW) {
+ builder = getNormalToOverviewAnimation();
+ } else if (fromState == OVERVIEW && toState == ALL_APPS) {
+ builder = getOverviewToAllAppsAnimation();
+ } else if (fromState == ALL_APPS && toState == OVERVIEW) {
+ builder = getAllAppsToOverviewAnimation();
+ }
return builder;
}
@@ -139,13 +184,8 @@ public class PortraitStatesTouchController extends AbstractStateChangeTouchContr
float totalShift = endVerticalShift - startVerticalShift;
- final AnimatorSetBuilder builder;
-
- if (mFromState == NORMAL && mToState == OVERVIEW && totalShift != 0) {
- builder = getNormalToOverviewAnimation();
- } else {
- builder = new AnimatorSetBuilder();
- }
+ final AnimatorSetBuilder builder = totalShift == 0 ? new AnimatorSetBuilder()
+ : getAnimatorSetBuilderForStates(mFromState, mToState);
cancelPendingAnim();
diff --git a/quickstep/src/com/android/quickstep/LongSwipeHelper.java b/quickstep/src/com/android/quickstep/LongSwipeHelper.java
index 336be2bd8..078509330 100644
--- a/quickstep/src/com/android/quickstep/LongSwipeHelper.java
+++ b/quickstep/src/com/android/quickstep/LongSwipeHelper.java
@@ -25,10 +25,13 @@ import android.animation.ValueAnimator;
import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherAnimUtils;
+import com.android.launcher3.LauncherStateManager;
import com.android.launcher3.R;
import com.android.launcher3.allapps.AllAppsTransitionController;
import com.android.launcher3.allapps.DiscoveryBounce;
import com.android.launcher3.anim.AnimatorPlaybackController;
+import com.android.launcher3.anim.AnimatorSetBuilder;
+import com.android.launcher3.uioverrides.PortraitStatesTouchController;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Direction;
import com.android.launcher3.userevent.nano.LauncherLogProto.Action.Touch;
import com.android.launcher3.userevent.nano.LauncherLogProto.ContainerType;
@@ -67,8 +70,10 @@ public class LongSwipeHelper {
AllAppsTransitionController controller = mLauncher.getAllAppsController();
// TODO: Scale it down so that we can reach all-apps in screen space
mMaxSwipeDistance = Math.max(1, controller.getProgress() * controller.getShiftRange());
- mAnimator = mLauncher.getStateManager()
- .createAnimationToNewWorkspace(ALL_APPS, Math.round(2 * mMaxSwipeDistance));
+
+ AnimatorSetBuilder builder = PortraitStatesTouchController.getOverviewToAllAppsAnimation();
+ mAnimator = mLauncher.getStateManager().createAnimationToNewWorkspace(ALL_APPS, builder,
+ Math.round(2 * mMaxSwipeDistance), null, LauncherStateManager.ANIM_ALL);
mAnimator.dispatchOnStart();
}
diff --git a/quickstep/src/com/android/quickstep/views/ShelfScrimView.java b/quickstep/src/com/android/quickstep/views/ShelfScrimView.java
index d7e527c7c..8b5e83245 100644
--- a/quickstep/src/com/android/quickstep/views/ShelfScrimView.java
+++ b/quickstep/src/com/android/quickstep/views/ShelfScrimView.java
@@ -16,7 +16,6 @@
package com.android.quickstep.views;
import static android.support.v4.graphics.ColorUtils.setAlphaComponent;
-
import static com.android.launcher3.LauncherState.OVERVIEW;
import static com.android.launcher3.anim.Interpolators.ACCEL;
import static com.android.launcher3.anim.Interpolators.LINEAR;
@@ -33,6 +32,7 @@ import android.util.AttributeSet;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
+import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.util.Themes;
import com.android.launcher3.views.ScrimView;
@@ -55,7 +55,7 @@ public class ShelfScrimView extends ScrimView {
// For shelf mode
private final int mEndAlpha;
private final float mRadius;
- private final float mMaxScrimAlpha;
+ private final int mMaxScrimAlpha;
private final Paint mPaint;
// Mid point where the alpha changes
@@ -78,7 +78,7 @@ public class ShelfScrimView extends ScrimView {
public ShelfScrimView(Context context, AttributeSet attrs) {
super(context, attrs);
- mMaxScrimAlpha = OVERVIEW.getWorkspaceScrimAlpha(mLauncher);
+ mMaxScrimAlpha = Math.round(OVERVIEW.getWorkspaceScrimAlpha(mLauncher) * 255);
mEndAlpha = Color.alpha(mEndScrim);
mRadius = mLauncher.getResources().getDimension(R.dimen.shelf_surface_radius);
@@ -144,9 +144,10 @@ public class ShelfScrimView extends ScrimView {
} else {
mDragHandleOffset += mShiftRange * (mMidProgress - mProgress);
+ // Note that these ranges and interpolators are inverted because progress goes 1 to 0.
int alpha = Math.round(
Utilities.mapToRange(mProgress, (float) 0, mMidProgress, (float) mEndAlpha,
- (float) mMidAlpha, LINEAR));
+ (float) mMidAlpha, Interpolators.clampToProgress(ACCEL, 0.5f, 1f)));
mShelfColor = setAlphaComponent(mEndScrim, alpha);
int remainingScrimAlpha = Math.round(