diff options
author | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-06-20 23:58:34 +0000 |
---|---|---|
committer | Android Build Merger (Role) <noreply-android-build-merger@google.com> | 2018-06-20 23:58:34 +0000 |
commit | 913171a692b8209c70cf3e59c4d4cb4dda0ae121 (patch) | |
tree | 8e09aba2ec3828d2196271a5e8f5e4f62dc072ef /quickstep | |
parent | 15caa4e90ff26d6cfcfbd65e0d509f26e2c8deb0 (diff) | |
parent | 17be4e71b2f6733b4ea4dd52c3a46e8b5ec0d360 (diff) | |
download | android_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')
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( |