diff options
author | Tony <twickham@google.com> | 2019-03-19 13:30:25 -0500 |
---|---|---|
committer | Tony <twickham@google.com> | 2019-03-27 14:36:48 -0500 |
commit | bc23440d738338dd357fccb77013a6dab9209d00 (patch) | |
tree | 1682f411a7cce99fc1de927a7fe66733d14df612 /quickstep | |
parent | 9244f518f2a4d88d61cdf9e522c47aeedd43fdd6 (diff) | |
download | android_packages_apps_Trebuchet-bc23440d738338dd357fccb77013a6dab9209d00.tar.gz android_packages_apps_Trebuchet-bc23440d738338dd357fccb77013a6dab9209d00.tar.bz2 android_packages_apps_Trebuchet-bc23440d738338dd357fccb77013a6dab9209d00.zip |
Add translationX to overview state
States return ScaleAndTranslation instead of float[].
Also separate overview translate interpolator from overview scale interpolator.
Change-Id: I5e65dde3f436055ff5e7f5736f1a4b712377b9cb
Diffstat (limited to 'quickstep')
5 files changed, 40 insertions, 39 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/BackgroundAppState.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/BackgroundAppState.java index f7127537a..726ae0504 100644 --- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/BackgroundAppState.java +++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/BackgroundAppState.java @@ -52,7 +52,7 @@ public class BackgroundAppState extends OverviewState { } @Override - public float[] getOverviewScaleAndTranslationY(Launcher launcher) { + public ScaleAndTranslation getOverviewScaleAndTranslation(Launcher launcher) { // Initialize the recents view scale to what it would be when starting swipe up RecentsView recentsView = launcher.getOverviewPanel(); recentsView.getTaskSize(sTempRect); @@ -71,7 +71,7 @@ public class BackgroundAppState extends OverviewState { } } float scale = (float) appWidth / sTempRect.width(); - return new float[] { scale, 0f }; + return new ScaleAndTranslation(scale, 0f, 0f); } @Override diff --git a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewState.java index 2360eebc4..db02c53d1 100644 --- a/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewState.java +++ b/quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/OverviewState.java @@ -56,7 +56,7 @@ public class OverviewState extends LauncherState { } @Override - public float[] getWorkspaceScaleAndTranslation(Launcher launcher) { + public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) { RecentsView recentsView = launcher.getOverviewPanel(); Workspace workspace = launcher.getWorkspace(); View workspacePage = workspace.getPageAt(workspace.getCurrentPage()); @@ -65,12 +65,12 @@ public class OverviewState extends LauncherState { recentsView.getTaskSize(sTempRect); float scale = (float) sTempRect.width() / workspacePageWidth; float parallaxFactor = 0.5f; - return new float[]{scale, 0, -getDefaultSwipeHeight(launcher) * parallaxFactor}; + return new ScaleAndTranslation(scale, 0, -getDefaultSwipeHeight(launcher) * parallaxFactor); } @Override - public float[] getOverviewScaleAndTranslationY(Launcher launcher) { - return new float[] {1f, 0f}; + public ScaleAndTranslation getOverviewScaleAndTranslation(Launcher launcher) { + return new ScaleAndTranslation(1f, 0f, 0f); } @Override diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java index 279b83c23..9763063b6 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityControllerHelper.java @@ -16,7 +16,6 @@ package com.android.quickstep; import static android.view.View.TRANSLATION_Y; - import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import static com.android.launcher3.LauncherState.BACKGROUND_APP; import static com.android.launcher3.LauncherState.NORMAL; @@ -39,10 +38,6 @@ import android.view.MotionEvent; import android.view.View; import android.view.animation.Interpolator; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.UiThread; - import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; @@ -67,6 +62,10 @@ import com.android.systemui.shared.system.RemoteAnimationTargetCompat; import java.util.function.BiPredicate; import java.util.function.Consumer; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.annotation.UiThread; + /** * {@link ActivityControlHelper} for the in-launcher recents. */ @@ -305,7 +304,7 @@ public final class LauncherActivityControllerHelper implements ActivityControlHe // starting to line up the side pages during swipe up) float prevRvScale = recentsView.getScaleX(); float prevRvTransY = recentsView.getTranslationY(); - float targetRvScale = endState.getOverviewScaleAndTranslationY(launcher)[0]; + float targetRvScale = endState.getOverviewScaleAndTranslation(launcher).scale; SCALE_PROPERTY.set(recentsView, targetRvScale); recentsView.setTranslationY(0); ClipAnimationHelper clipHelper = new ClipAnimationHelper(launcher); diff --git a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java index 5ae562e8b..c629e3360 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java +++ b/quickstep/src/com/android/launcher3/uioverrides/AllAppsState.java @@ -60,10 +60,10 @@ public class AllAppsState extends LauncherState { } @Override - public float[] getWorkspaceScaleAndTranslation(Launcher launcher) { - float[] scaleAndTranslation = LauncherState.OVERVIEW.getWorkspaceScaleAndTranslation( - launcher); - scaleAndTranslation[0] = 1; + public ScaleAndTranslation getWorkspaceScaleAndTranslation(Launcher launcher) { + ScaleAndTranslation scaleAndTranslation = LauncherState.OVERVIEW + .getWorkspaceScaleAndTranslation(launcher); + scaleAndTranslation.scale = 1; return scaleAndTranslation; } @@ -78,9 +78,9 @@ public class AllAppsState extends LauncherState { } @Override - public float[] getOverviewScaleAndTranslationY(Launcher launcher) { + public ScaleAndTranslation getOverviewScaleAndTranslation(Launcher launcher) { float slightParallax = -launcher.getDeviceProfile().allAppsCellHeightPx * 0.3f; - return new float[] {0.9f, slightParallax}; + return new ScaleAndTranslation(0.9f, 0f, slightParallax); } @Override diff --git a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java index 50e59af49..7b8699059 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java @@ -19,6 +19,7 @@ package com.android.launcher3.uioverrides; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_FADE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCALE; +import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_TRANSLATE; import static com.android.launcher3.anim.AnimatorSetBuilder.FLAG_DONT_ANIMATE_OVERVIEW; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE_IN_OUT; import static com.android.launcher3.anim.Interpolators.LINEAR; @@ -29,6 +30,7 @@ import android.view.animation.Interpolator; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; +import com.android.launcher3.LauncherState.ScaleAndTranslation; import com.android.launcher3.LauncherStateManager.AnimationConfig; import com.android.launcher3.LauncherStateManager.StateHandler; import com.android.launcher3.anim.AnimatorSetBuilder; @@ -54,9 +56,15 @@ public abstract class BaseRecentsViewStateController<T extends View> @Override public void setState(@NonNull LauncherState state) { - float[] scaleTranslationY = state.getOverviewScaleAndTranslationY(mLauncher); - SCALE_PROPERTY.set(mRecentsView, scaleTranslationY[0]); - mRecentsView.setTranslationY(scaleTranslationY[1]); + ScaleAndTranslation scaleAndTranslation = state + .getOverviewScaleAndTranslation(mLauncher); + SCALE_PROPERTY.set(mRecentsView, scaleAndTranslation.scale); + float translationX = scaleAndTranslation.translationX; + if (mRecentsView.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { + translationX = -translationX; + } + mRecentsView.setTranslationX(translationX); + mRecentsView.setTranslationY(scaleAndTranslation.translationY); getContentAlphaProperty().set(mRecentsView, state.overviewUi ? 1f : 0); } @@ -83,29 +91,23 @@ public abstract class BaseRecentsViewStateController<T extends View> void setStateWithAnimationInternal(@NonNull final LauncherState toState, @NonNull AnimatorSetBuilder builder, @NonNull AnimationConfig config) { PropertySetter setter = config.getPropertySetter(builder); - float[] scaleTranslationY = toState.getOverviewScaleAndTranslationY(mLauncher); - Interpolator scaleAndTransYInterpolator = getScaleAndTransYInterpolator(toState, builder); - setter.setFloat(mRecentsView, SCALE_PROPERTY, scaleTranslationY[0], - scaleAndTransYInterpolator); - setter.setFloat(mRecentsView, View.TRANSLATION_Y, scaleTranslationY[1], - scaleAndTransYInterpolator); + ScaleAndTranslation scaleAndTranslation = toState.getOverviewScaleAndTranslation(mLauncher); + Interpolator scaleInterpolator = builder.getInterpolator(ANIM_OVERVIEW_SCALE, LINEAR); + setter.setFloat(mRecentsView, SCALE_PROPERTY, scaleAndTranslation.scale, scaleInterpolator); + Interpolator translateInterpolator = builder.getInterpolator( + ANIM_OVERVIEW_TRANSLATE, LINEAR); + float translationX = scaleAndTranslation.translationX; + if (mRecentsView.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) { + translationX = -translationX; + } + setter.setFloat(mRecentsView, View.TRANSLATION_X, translationX, translateInterpolator); + setter.setFloat(mRecentsView, View.TRANSLATION_Y, scaleAndTranslation.translationY, + translateInterpolator); setter.setFloat(mRecentsView, getContentAlphaProperty(), toState.overviewUi ? 1 : 0, builder.getInterpolator(ANIM_OVERVIEW_FADE, AGGRESSIVE_EASE_IN_OUT)); } /** - * Get the interpolator to use for the scale and translation Y animation for the view. - * - * @param toState state to animate to - * @param builder animator set builder - * @return interpolator for scale and trans Y recents view animation - */ - Interpolator getScaleAndTransYInterpolator(@NonNull final LauncherState toState, - @NonNull AnimatorSetBuilder builder) { - return builder.getInterpolator(ANIM_OVERVIEW_SCALE, LINEAR); - } - - /** * Get property for content alpha for the recents view. * * @return the float property for the view's content alpha |