summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-11-19 14:06:36 -0800
committerJoe Onorato <joeo@android.com>2009-11-19 14:06:36 -0800
commit14f122bf847e50a3e7730ccbe57abc25d086a01b (patch)
tree05b7668b6ecc6259077847d81168e74f36019f71 /src
parent88ec0990c66702158d3c7f2f6ef5c03531978247 (diff)
downloadandroid_packages_apps_Trebuchet-14f122bf847e50a3e7730ccbe57abc25d086a01b.tar.gz
android_packages_apps_Trebuchet-14f122bf847e50a3e7730ccbe57abc25d086a01b.tar.bz2
android_packages_apps_Trebuchet-14f122bf847e50a3e7730ccbe57abc25d086a01b.zip
Fix bug 2271894 - Odd animation when press home button from app that wasn't in center home screen
Now: - When you're on the workspace and you press home, it animates back to the middle - When you're in all apps and you press home, all apps animates out and the workspace doesn't animate to the middle (it just jumps there) - When you're in an app and you press home, it doesn't animate to the middle - When you're in an app and you press back, it still goes to the page you were on. Don't look at the evil hack to make it move without animating.
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/Launcher.java10
-rw-r--r--src/com/android/launcher2/Workspace.java11
2 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index d76c9a872..fb59017b8 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -819,7 +819,7 @@ public final class Launcher extends Activity
}
void closeSystemDialogs() {
- closeAllApps(false);
+ closeAllApps(true);
getWindow().closeAllPanels();
try {
@@ -854,11 +854,13 @@ public final class Launcher extends Activity
// for example onResume being called when the user pressed the 'back' button.
mIsNewIntent = true;
+ boolean alreadyOnHome = ((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)
+ != Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
+ boolean allAppsVisible = isAllAppsVisible();
if (!mWorkspace.isDefaultScreenShowing()) {
- mWorkspace.moveToDefaultScreen();
+ mWorkspace.moveToDefaultScreen(alreadyOnHome && !allAppsVisible);
}
-
- closeAllApps(false);
+ closeAllApps(alreadyOnHome && allAppsVisible);
final View v = getWindow().peekDecorView();
if (v != null && v.getWindowToken() != null) {
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index d0cec8af1..ac94ccae8 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -947,6 +947,10 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
}
void snapToScreen(int whichScreen) {
+ snapToScreen(whichScreen, true);
+ }
+
+ void snapToScreen(int whichScreen, boolean animate) {
//if (!mScroller.isFinished()) return;
whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1));
@@ -970,7 +974,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
final int delta = newX - mScrollX;
final int duration = screenDelta * 300;
awakenScrollBars(duration);
- mScroller.startScroll(mScrollX, 0, delta, 0, duration);
+ // 1ms is close to don't animate
+ mScroller.startScroll(mScrollX, 0, delta, 0, animate ? duration : 1);
invalidate();
}
@@ -1420,8 +1425,8 @@ public class Workspace extends ViewGroup implements DropTarget, DragSource, Drag
}
}
- void moveToDefaultScreen() {
- snapToScreen(mDefaultScreen);
+ void moveToDefaultScreen(boolean animate) {
+ snapToScreen(mDefaultScreen, animate);
getChildAt(mDefaultScreen).requestFocus();
}