Exit overview mode after setting wallpaper
Also, create method to exit overview mode without an animation Bug: 10332065 Change-Id: Iaade5ccb07aefa7d19be5f07db821a69762cb1bb
This commit is contained in:
@@ -660,9 +660,6 @@ public class Launcher extends Activity
|
||||
completeAddAppWidget(appWidgetId, args.container, args.screenId, null, null);
|
||||
result = true;
|
||||
break;
|
||||
case REQUEST_PICK_WALLPAPER:
|
||||
// We just wanted the activity result here so we can clear mWaitingForResult
|
||||
break;
|
||||
}
|
||||
// Before adding this resetAddInfo(), after a shortcut was added to a workspace screen,
|
||||
// if you turned the screen off and then back while in All Apps, Launcher would not
|
||||
@@ -686,7 +683,13 @@ public class Launcher extends Activity
|
||||
addAppWidgetImpl(appWidgetId, mPendingAddInfo, null, mPendingAddWidgetInfo);
|
||||
}
|
||||
return;
|
||||
} else if (requestCode == REQUEST_PICK_WALLPAPER) {
|
||||
if (resultCode == RESULT_OK && mWorkspace.isInOverviewMode()) {
|
||||
mWorkspace.exitOverviewMode(false);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
boolean delayExitSpringLoadedMode = false;
|
||||
boolean isWidgetDrop = (requestCode == REQUEST_PICK_APPWIDGET ||
|
||||
requestCode == REQUEST_CREATE_APPWIDGET);
|
||||
@@ -1631,7 +1634,7 @@ public class Launcher extends Activity
|
||||
// If we are already on home, then just animate back to the workspace,
|
||||
// otherwise, just wait until onResume to set the state back to Workspace
|
||||
if (alreadyOnHome) {
|
||||
showWorkspace();
|
||||
showWorkspaceAndExitOverviewMode();
|
||||
} else {
|
||||
mOnResumeState = State.WORKSPACE;
|
||||
}
|
||||
@@ -1665,10 +1668,10 @@ public class Launcher extends Activity
|
||||
}
|
||||
}
|
||||
|
||||
protected void showWorkspace() {
|
||||
protected void showWorkspaceAndExitOverviewMode() {
|
||||
showWorkspace(true);
|
||||
if (mWorkspace.isInOverviewMode()) {
|
||||
mWorkspace.exitOverviewMode();
|
||||
mWorkspace.exitOverviewMode(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2128,7 +2131,7 @@ public class Launcher extends Activity
|
||||
if (isAllAppsVisible()) {
|
||||
showWorkspace(true);
|
||||
} else if (mWorkspace.isInOverviewMode()) {
|
||||
mWorkspace.exitOverviewMode();
|
||||
mWorkspace.exitOverviewMode(true);
|
||||
} else if (mWorkspace.getOpenFolder() != null) {
|
||||
Folder openFolder = mWorkspace.getOpenFolder();
|
||||
if (openFolder.isEditingName()) {
|
||||
@@ -2178,7 +2181,7 @@ public class Launcher extends Activity
|
||||
|
||||
if (v instanceof CellLayout) {
|
||||
if (mWorkspace.isInOverviewMode()) {
|
||||
mWorkspace.exitOverviewMode(mWorkspace.indexOfChild(v));
|
||||
mWorkspace.exitOverviewMode(mWorkspace.indexOfChild(v), true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1757,35 +1757,37 @@ public class Workspace extends SmoothPagedView
|
||||
}
|
||||
|
||||
public void enterOverviewMode() {
|
||||
enableOverviewMode(true, -1);
|
||||
enableOverviewMode(true, -1, true);
|
||||
}
|
||||
|
||||
public void exitOverviewMode() {
|
||||
exitOverviewMode(-1);
|
||||
public void exitOverviewMode(boolean animated) {
|
||||
exitOverviewMode(-1, animated);
|
||||
}
|
||||
|
||||
public void exitOverviewMode(int snapPage) {
|
||||
enableOverviewMode(false, snapPage);
|
||||
public void exitOverviewMode(int snapPage, boolean animated) {
|
||||
enableOverviewMode(false, snapPage, animated);
|
||||
}
|
||||
|
||||
private void enableOverviewMode(boolean enable, int snapPage) {
|
||||
private void enableOverviewMode(boolean enable, int snapPage, boolean animated) {
|
||||
State finalState = Workspace.State.OVERVIEW;
|
||||
if (!enable) {
|
||||
finalState = Workspace.State.NORMAL;
|
||||
}
|
||||
|
||||
Animator workspaceAnim = getChangeStateAnimation(finalState, true, 0, snapPage);
|
||||
workspaceAnim.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator arg0) {
|
||||
mIsSwitchingState = false;
|
||||
}
|
||||
@Override
|
||||
public void onAnimationStart(Animator arg0) {
|
||||
mIsSwitchingState = true;
|
||||
}
|
||||
});
|
||||
workspaceAnim.start();
|
||||
Animator workspaceAnim = getChangeStateAnimation(finalState, animated, 0, snapPage);
|
||||
if (workspaceAnim != null) {
|
||||
workspaceAnim.addListener(new AnimatorListenerAdapter() {
|
||||
@Override
|
||||
public void onAnimationEnd(Animator arg0) {
|
||||
mIsSwitchingState = false;
|
||||
}
|
||||
@Override
|
||||
public void onAnimationStart(Animator arg0) {
|
||||
mIsSwitchingState = true;
|
||||
}
|
||||
});
|
||||
workspaceAnim.start();
|
||||
}
|
||||
}
|
||||
|
||||
Animator getChangeStateAnimation(final State state, boolean animated, int delay, int snapPage) {
|
||||
@@ -1933,9 +1935,12 @@ public class Workspace extends SmoothPagedView
|
||||
anim.setStartDelay(delay);
|
||||
} else {
|
||||
mLauncher.getOverviewPanel().setAlpha(finalOverviewPanelAlpha);
|
||||
AlphaUpdateListener.updateVisibility(mLauncher.getOverviewPanel());
|
||||
mLauncher.getHotseat().setAlpha(finalHotseatAndPageIndicatorAlpha);
|
||||
AlphaUpdateListener.updateVisibility(mLauncher.getHotseat());
|
||||
if (getPageIndicator() != null) {
|
||||
getPageIndicator().setAlpha(finalHotseatAndPageIndicatorAlpha);
|
||||
AlphaUpdateListener.updateVisibility(getPageIndicator());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1952,7 +1957,7 @@ public class Workspace extends SmoothPagedView
|
||||
return anim;
|
||||
}
|
||||
|
||||
class AlphaUpdateListener implements AnimatorUpdateListener {
|
||||
static class AlphaUpdateListener implements AnimatorUpdateListener {
|
||||
View view;
|
||||
public AlphaUpdateListener(View v) {
|
||||
view = v;
|
||||
@@ -1960,6 +1965,10 @@ public class Workspace extends SmoothPagedView
|
||||
|
||||
@Override
|
||||
public void onAnimationUpdate(ValueAnimator arg0) {
|
||||
updateVisibility(view);
|
||||
}
|
||||
|
||||
public static void updateVisibility(View view) {
|
||||
if (view.getAlpha() < ALPHA_CUTOFF_THRESHOLD && view.getVisibility() != INVISIBLE) {
|
||||
view.setVisibility(INVISIBLE);
|
||||
} else if (view.getAlpha() > ALPHA_CUTOFF_THRESHOLD
|
||||
|
||||
Reference in New Issue
Block a user