diff options
author | Michael Jurka <mikejurka@google.com> | 2013-09-12 00:05:02 +0200 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2013-09-14 14:38:19 +0200 |
commit | 336fd4f65b8fa0f5188060eba351fa70bb5bfde0 (patch) | |
tree | c5c5682ffe0bdb2ddef4a5042c15fc643d1061e2 /src/com | |
parent | 78cf9299b9273053aebba0fdc465d91753aae83f (diff) | |
download | android_packages_apps_Trebuchet-336fd4f65b8fa0f5188060eba351fa70bb5bfde0.tar.gz android_packages_apps_Trebuchet-336fd4f65b8fa0f5188060eba351fa70bb5bfde0.tar.bz2 android_packages_apps_Trebuchet-336fd4f65b8fa0f5188060eba351fa70bb5bfde0.zip |
Exit overview mode after setting wallpaper
Also, create method to exit overview mode without
an animation
Bug: 10332065
Change-Id: Iaade5ccb07aefa7d19be5f07db821a69762cb1bb
Diffstat (limited to 'src/com')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 19 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 47 |
2 files changed, 39 insertions, 27 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 408f61a47..0a92f3563 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -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); } } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 0d966f42a..1818ade84 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -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 |