summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-09-12 00:05:02 +0200
committerMichael Jurka <mikejurka@google.com>2013-09-14 14:38:19 +0200
commit336fd4f65b8fa0f5188060eba351fa70bb5bfde0 (patch)
treec5c5682ffe0bdb2ddef4a5042c15fc643d1061e2 /src
parent78cf9299b9273053aebba0fdc465d91753aae83f (diff)
downloadandroid_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')
-rw-r--r--src/com/android/launcher3/Launcher.java19
-rw-r--r--src/com/android/launcher3/Workspace.java47
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