summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2016-07-29 13:03:54 -0700
committerHyunyoung Song <hyunyoungs@google.com>2016-07-29 13:03:54 -0700
commit06ca7568c63a972832db43563020f5b4a1ae1112 (patch)
tree0bfa8eb4844eeb9888720d212e461e7c0d93b954 /src
parent7da6d00c2e071989fb672978d7be5e14b28cd520 (diff)
downloadandroid_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.java20
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() {