diff options
author | Winson Chung <winsonc@google.com> | 2011-04-07 12:01:04 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-04-07 12:01:04 -0700 |
commit | c2d05d7f552bb6191a1dbcccfdc8c77505c92f80 (patch) | |
tree | 19610651905c99182258ba7ed287406e745100ea | |
parent | a16b2ab242de46fb768e09bdba088e591761569f (diff) | |
parent | 20f7111c73692e397d2aae746c9bdf9aec8711da (diff) | |
download | android_packages_apps_Trebuchet-c2d05d7f552bb6191a1dbcccfdc8c77505c92f80.tar.gz android_packages_apps_Trebuchet-c2d05d7f552bb6191a1dbcccfdc8c77505c92f80.tar.bz2 android_packages_apps_Trebuchet-c2d05d7f552bb6191a1dbcccfdc8c77505c92f80.zip |
Merge "Making mini workspaces disappear if drag from AllApps fails."
-rw-r--r-- | src/com/android/launcher2/AllAppsPagedView.java | 11 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 32 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 8 |
3 files changed, 29 insertions, 22 deletions
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java index 3924c5752..c05fe75d5 100644 --- a/src/com/android/launcher2/AllAppsPagedView.java +++ b/src/com/android/launcher2/AllAppsPagedView.java @@ -66,6 +66,7 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All private boolean mAllowHardwareLayerCreation; private int mPageContentWidth; + private boolean mHasMadeSuccessfulDrop; public AllAppsPagedView(Context context) { this(context, null); @@ -138,6 +139,10 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All } } + void resetSuccessfulDropFlag() { + mHasMadeSuccessfulDrop = false; + } + @Override public void zoom(float zoom, boolean animate) { mZoom = zoom; @@ -322,6 +327,12 @@ public class AllAppsPagedView extends PagedViewWithDraggableItems implements All tearDownDragMode(); mLauncher.getWorkspace().onDragStopped(success); mLauncher.unlockScreenOrientation(); + + if (!success && !mHasMadeSuccessfulDrop) { + mLauncher.getWorkspace().shrink(Workspace.ShrinkState.BOTTOM_HIDDEN); + } else { + mHasMadeSuccessfulDrop |= success; + } } int getPageContentWidth() { diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index a68bd9b74..2f4763602 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -2695,7 +2695,7 @@ public final class Launcher extends Activity * of the screen. * @param toState The state to zoom out to. Must be ALL_APPS or CUSTOMIZE. */ - private void cameraZoomOut(State toState, boolean animated) { + private void cameraZoomOut(State toState, boolean animated, boolean springLoaded) { final Resources res = getResources(); final boolean toAllApps = (toState == State.ALL_APPS); @@ -2715,7 +2715,15 @@ public final class Launcher extends Activity setPivotsForZoom(toView, toState, scale); if (toAllApps) { - mWorkspace.shrink(ShrinkState.BOTTOM_HIDDEN, animated); + if (!springLoaded) { + mWorkspace.shrink(ShrinkState.BOTTOM_HIDDEN, animated); + + // Everytime we launch into AllApps, we reset the successful drop flag which + // controls when it should hide/show the mini workspaces + mAllAppsPagedView.resetSuccessfulDropFlag(); + } else { + mWorkspace.shrink(ShrinkState.BOTTOM_VISIBLE, animated); + } } else { mWorkspace.shrink(ShrinkState.TOP, animated); } @@ -2807,10 +2815,6 @@ public final class Launcher extends Activity * @param fromState The current state (must be ALL_APPS or CUSTOMIZE). * @param animated If true, the transition will be animated. */ - private void cameraZoomIn(State fromState, boolean animated) { - cameraZoomIn(fromState, animated, false); - } - private void cameraZoomIn(State fromState, boolean animated, boolean springLoaded) { Resources res = getResources(); final boolean fromAllApps = (fromState == State.ALL_APPS); @@ -2902,7 +2906,7 @@ public final class Launcher extends Activity } if (LauncherApplication.isScreenXLarge()) { - cameraZoomOut(State.ALL_APPS, animated); + cameraZoomOut(State.ALL_APPS, animated, false); } else { mAllAppsGrid.zoom(1.0f, animated); } @@ -2956,11 +2960,11 @@ public final class Launcher extends Activity void enterSpringLoadedDragMode(CellLayout layout) { mWorkspace.enterSpringLoadedDragMode(layout); if (mState == State.ALL_APPS) { - cameraZoomIn(State.ALL_APPS, true, true); mState = State.ALL_APPS_SPRING_LOADED; + cameraZoomIn(State.ALL_APPS, true, true); } else if (mState == State.CUSTOMIZE) { - cameraZoomIn(State.CUSTOMIZE, true, true); mState = State.CUSTOMIZE_SPRING_LOADED; + cameraZoomIn(State.CUSTOMIZE, true, true); }/* else { // we're already in spring loaded mode; don't do anything }*/ @@ -2969,11 +2973,11 @@ public final class Launcher extends Activity void exitSpringLoadedDragMode() { if (mState == State.ALL_APPS_SPRING_LOADED) { mWorkspace.exitSpringLoadedDragMode(Workspace.ShrinkState.BOTTOM_VISIBLE); - cameraZoomOut(State.ALL_APPS, true); + cameraZoomOut(State.ALL_APPS, true, true); mState = State.ALL_APPS; } else if (mState == State.CUSTOMIZE_SPRING_LOADED) { mWorkspace.exitSpringLoadedDragMode(Workspace.ShrinkState.TOP); - cameraZoomOut(State.CUSTOMIZE, true); + cameraZoomOut(State.CUSTOMIZE, true, true); mState = State.CUSTOMIZE; }/* else { // we're not in spring loaded mode; don't do anything @@ -3023,7 +3027,7 @@ public final class Launcher extends Activity if (mState == State.ALL_APPS || mState == State.ALL_APPS_SPRING_LOADED) { mWorkspace.setVisibility(View.VISIBLE); if (LauncherApplication.isScreenXLarge()) { - cameraZoomIn(State.ALL_APPS, animated); + cameraZoomIn(State.ALL_APPS, animated, false); } else { mAllAppsGrid.zoom(0.0f, animated); } @@ -3046,7 +3050,7 @@ public final class Launcher extends Activity return; } - cameraZoomOut(State.CUSTOMIZE, animated); + cameraZoomOut(State.CUSTOMIZE, animated, false); // Change the state *after* we've called all the transition code mState = State.CUSTOMIZE; @@ -3059,7 +3063,7 @@ public final class Launcher extends Activity // Hide the customization drawer (only exists in x-large configuration) void hideCustomizationDrawer(boolean animated) { if (mState == State.CUSTOMIZE || mState == State.CUSTOMIZE_SPRING_LOADED) { - cameraZoomIn(State.CUSTOMIZE, animated); + cameraZoomIn(State.CUSTOMIZE, animated, false); } } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 7e17a54f3..61a0e4894 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -1401,14 +1401,6 @@ public class Workspace extends SmoothPagedView // we use this to shrink the workspace for the all apps view and the customize view public void shrink(ShrinkState shrinkState, boolean animated) { - // In the launcher interaction model, we're never in the state where we're shrunken and - // visible in the bottom of the screen, and then want to fade to being invisible. - // After spring loaded mode ends, this method was getting called twice, the first time - // with BOTTOM_VISIBLE (what we want) and a second time with BOTTOM_INVISIBLE (not - // what we want). As a temporary solution, we just change the second call to BOTTOM_VISIBLE - if (mIsSmall && mShrinkState == ShrinkState.BOTTOM_VISIBLE) { - shrinkState = ShrinkState.BOTTOM_VISIBLE; - } if (mFirstLayout) { // (mFirstLayout == "first layout has not happened yet") // if we get a call to shrink() as part of our initialization (for example, if |