diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2018-05-22 22:20:54 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-05-22 22:20:54 +0000 |
commit | 5e42a7239cdc155af8b7935b487e2a7786fbcd46 (patch) | |
tree | 098492f947523863487be44a20fc766a548613ae /src/com/android/launcher3/allapps | |
parent | a31b4b8c2509343c4f387a0175116425a06ae9f3 (diff) | |
parent | 9d0e7203baf33239a649a49505944946c3586b9a (diff) | |
download | android_packages_apps_Trebuchet-5e42a7239cdc155af8b7935b487e2a7786fbcd46.tar.gz android_packages_apps_Trebuchet-5e42a7239cdc155af8b7935b487e2a7786fbcd46.tar.bz2 android_packages_apps_Trebuchet-5e42a7239cdc155af8b7935b487e2a7786fbcd46.zip |
Merge changes from topic "am-74dc7dc8-e2ec-493b-90ca-01725fc50357" into ub-launcher3-master
* changes:
[automerger] Reset the vertical progress when the discovery bounce is closed am: 0bd0244a73
Reset the vertical progress when the discovery bounce is closed
Diffstat (limited to 'src/com/android/launcher3/allapps')
-rw-r--r-- | src/com/android/launcher3/allapps/DiscoveryBounce.java | 75 |
1 files changed, 39 insertions, 36 deletions
diff --git a/src/com/android/launcher3/allapps/DiscoveryBounce.java b/src/com/android/launcher3/allapps/DiscoveryBounce.java index 6b0438498..660c4ad28 100644 --- a/src/com/android/launcher3/allapps/DiscoveryBounce.java +++ b/src/com/android/launcher3/allapps/DiscoveryBounce.java @@ -24,14 +24,9 @@ import static com.android.launcher3.userevent.nano.LauncherLogProto.ContainerTyp import android.animation.Animator; import android.animation.AnimatorInflater; import android.animation.AnimatorListenerAdapter; -import android.animation.Keyframe; -import android.animation.ObjectAnimator; -import android.animation.PropertyValuesHolder; -import android.animation.TimeInterpolator; import android.app.ActivityManager; import android.os.Handler; import android.view.MotionEvent; -import android.view.animation.PathInterpolator; import com.android.launcher3.AbstractFloatingView; import com.android.launcher3.Launcher; @@ -52,21 +47,21 @@ public class DiscoveryBounce extends AbstractFloatingView { private final Launcher mLauncher; private final Animator mDiscoBounceAnimation; - public DiscoveryBounce(Launcher launcher, Animator animator) { + public DiscoveryBounce(Launcher launcher, float delta) { super(launcher, null); mLauncher = launcher; - - mDiscoBounceAnimation = animator; AllAppsTransitionController controller = mLauncher.getAllAppsController(); - mDiscoBounceAnimation.setTarget(controller); - mDiscoBounceAnimation.addListener(controller.getProgressAnimatorListener()); + mDiscoBounceAnimation = + AnimatorInflater.loadAnimator(launcher, R.animator.discovery_bounce); + mDiscoBounceAnimation.setTarget(new VerticalProgressWrapper(controller, delta)); mDiscoBounceAnimation.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { handleClose(false); } }); + mDiscoBounceAnimation.addListener(controller.getProgressAnimatorListener()); } @Override @@ -102,6 +97,9 @@ public class DiscoveryBounce extends AbstractFloatingView { if (mIsOpen) { mIsOpen = false; mLauncher.getDragLayer().removeView(this); + // Reset the all-apps progress to what ever it was previously. + mLauncher.getAllAppsController().setProgress(mLauncher.getStateManager() + .getState().getVerticalProgress(mLauncher)); } } @@ -115,6 +113,12 @@ public class DiscoveryBounce extends AbstractFloatingView { return (type & TYPE_ON_BOARD_POPUP) != 0; } + private void show(int containerType) { + mIsOpen = true; + mLauncher.getDragLayer().addView(this); + mLauncher.getUserEventDispatcher().logActionBounceTip(containerType); + } + public static void showForHomeIfNeeded(Launcher launcher) { showForHomeIfNeeded(launcher, true); } @@ -134,11 +138,7 @@ public class DiscoveryBounce extends AbstractFloatingView { return; } - DiscoveryBounce view = new DiscoveryBounce(launcher, - AnimatorInflater.loadAnimator(launcher, R.animator.discovery_bounce)); - view.mIsOpen = true; - launcher.getDragLayer().addView(view); - launcher.getUserEventDispatcher().logActionBounceTip(HOTSEAT); + new DiscoveryBounce(launcher, 0).show(HOTSEAT); } public static void showForOverviewIfNeeded(Launcher launcher) { @@ -166,27 +166,30 @@ public class DiscoveryBounce extends AbstractFloatingView { return; } - float verticalProgress = OVERVIEW.getVerticalProgress(launcher); - - TimeInterpolator pathInterpolator = new PathInterpolator(0.35f, 0, 0.5f, 1); - Keyframe keyframe3 = Keyframe.ofFloat(0.423f, verticalProgress - (1 - 0.9738f)); - keyframe3.setInterpolator(pathInterpolator); - Keyframe keyframe4 = Keyframe.ofFloat(0.754f, verticalProgress); - keyframe4.setInterpolator(pathInterpolator); - - PropertyValuesHolder propertyValuesHolder = PropertyValuesHolder.ofKeyframe("progress", - Keyframe.ofFloat(0, verticalProgress), - Keyframe.ofFloat(0.246f, verticalProgress), keyframe3, keyframe4, - Keyframe.ofFloat(1f, verticalProgress)); - ObjectAnimator animator = ObjectAnimator.ofPropertyValuesHolder(null, - new PropertyValuesHolder[]{propertyValuesHolder}); - animator.setDuration(2166); - animator.setRepeatCount(5); - - DiscoveryBounce view = new DiscoveryBounce(launcher, animator); - view.mIsOpen = true; - launcher.getDragLayer().addView(view); - launcher.getUserEventDispatcher().logActionBounceTip(PREDICTION); + new DiscoveryBounce(launcher, (1 - OVERVIEW.getVerticalProgress(launcher))) + .show(PREDICTION); + } + + /** + * A wrapper around {@link AllAppsTransitionController} allowing a fixed shift in the value. + */ + public static class VerticalProgressWrapper { + + private final float mDelta; + private final AllAppsTransitionController mController; + + private VerticalProgressWrapper(AllAppsTransitionController controller, float delta) { + mController = controller; + mDelta = delta; + } + + public float getProgress() { + return mController.getProgress() + mDelta; + } + + public void setProgress(float progress) { + mController.setProgress(progress - mDelta); + } } private static boolean shouldShowForWorkProfile(Launcher launcher) { |