diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2016-07-29 13:03:54 -0700 |
---|---|---|
committer | Hyunyoung Song <hyunyoungs@google.com> | 2016-07-29 13:03:54 -0700 |
commit | 06ca7568c63a972832db43563020f5b4a1ae1112 (patch) | |
tree | 0bfa8eb4844eeb9888720d212e461e7c0d93b954 /src | |
parent | 7da6d00c2e071989fb672978d7be5e14b28cd520 (diff) | |
download | android_packages_apps_Trebuchet-06ca7568c63a972832db43563020f5b4a1ae1112.tar.gz android_packages_apps_Trebuchet-06ca7568c63a972832db43563020f5b4a1ae1112.tar.bz2 android_packages_apps_Trebuchet-06ca7568c63a972832db43563020f5b4a1ae1112.zip |
Cancel exit spring loaded runnable when launcher state is set to APPS or WIDGETS
b/29645452
By cancelling the runnable, we are enabling transition:
state1 -> state3 instead of state1-> state2-> state3.
Transition state1->state3 is a viable transition that is
supported by our model.
Launcher Workspace
--------------------------------------------
state1 APPS_SPRING_LOADED SPRING_LOADED
state2 WORKSPACE NORMAL
state3 APPS NORMAL_HIDDEN
Change-Id: If27905567efe439324494e0091a4b42fcbf01448
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 78e0aa0c1..691136019 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -348,6 +348,11 @@ public class Launcher extends Activity } } + // Exiting spring loaded mode happens with a delay. This runnable object triggers the + // state transition. If another state transition happened during this delay, + // simply unregister this runnable. + private Runnable mExitSpringLoadedModeRunnable; + @Thunk Runnable mBuildLayersRunnable = new Runnable() { public void run() { if (mWorkspace != null) { @@ -3413,6 +3418,12 @@ public class Launcher extends Activity return false; } + // This is a safe and supported transition to bypass spring_loaded mode. + if (mExitSpringLoadedModeRunnable != null) { + mHandler.removeCallbacks(mExitSpringLoadedModeRunnable); + mExitSpringLoadedModeRunnable = null; + } + if (toState == State.APPS) { mStateTransitionAnimation.startAnimationToAllApps(mWorkspace.getState(), animated, focusSearchBar); @@ -3472,7 +3483,10 @@ public class Launcher extends Activity final Runnable onCompleteRunnable) { if (!isStateSpringLoaded()) return; - mHandler.postDelayed(new Runnable() { + if (mExitSpringLoadedModeRunnable != null) { + mHandler.removeCallbacks(mExitSpringLoadedModeRunnable); + } + mExitSpringLoadedModeRunnable = new Runnable() { @Override public void run() { if (successfulDrop) { @@ -3486,8 +3500,10 @@ public class Launcher extends Activity } else { exitSpringLoadedDragMode(); } + mExitSpringLoadedModeRunnable = null; } - }, delay); + }; + mHandler.postDelayed(mExitSpringLoadedModeRunnable, delay); } boolean isStateSpringLoaded() { |