Merge "Making mini workspaces disappear if drag from AllApps fails."
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user