summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-10-11 16:10:58 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-11 16:10:58 -0700
commita78bfcc9d02da4d47598461c1549742378d27b85 (patch)
tree1b81477f29fbf2a54902e80d2a4e04b80e52d979
parent005f4ad033973d84c5073a954b9507cd38ae502b (diff)
parent8c9802ef3bf679a5094a905da91e053110c4dbeb (diff)
downloadandroid_packages_apps_Trebuchet-a78bfcc9d02da4d47598461c1549742378d27b85.tar.gz
android_packages_apps_Trebuchet-a78bfcc9d02da4d47598461c1549742378d27b85.tar.bz2
android_packages_apps_Trebuchet-a78bfcc9d02da4d47598461c1549742378d27b85.zip
am 8c9802ef: am dc734ef2: Merge "Fixing issue where the PagedView scroll is out of sync with the current page. (Bug 11050528)" into jb-ub-now-indigo-rose
* commit '8c9802ef3bf679a5094a905da91e053110c4dbeb': Fixing issue where the PagedView scroll is out of sync with the current page. (Bug 11050528)
-rw-r--r--src/com/android/launcher3/Workspace.java25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index cc585f253..5205bef23 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -442,6 +442,13 @@ public class Workspace extends SmoothPagedView
setLayoutTransition(mLayoutTransition);
}
+ void enableLayoutTransitions() {
+ setLayoutTransition(mLayoutTransition);
+ }
+ void disableLayoutTransitions() {
+ setLayoutTransition(null);
+ }
+
@Override
protected int getScrollMode() {
return SmoothPagedView.X_LARGE_MODE;
@@ -489,10 +496,24 @@ public class Workspace extends SmoothPagedView
}
public void removeAllWorkspaceScreens() {
+ // Disable all layout transitions before removing all pages to ensure that we don't get the
+ // transition animations competing with us changing the scroll when we add pages or the
+ // custom content screen
+ disableLayoutTransitions();
+
+ // Since we increment the current page when we call addCustomContentPage via bindScreens
+ // (and other places), we need to adjust the current page back when we clear the pages
+ if (hasCustomContent()) {
+ removeCustomContentPage();
+ }
+
// Remove the pages and clear the screen models
removeAllViews();
mScreenOrder.clear();
mWorkspaceScreens.clear();
+
+ // Re-enable the layout transitions
+ enableLayoutTransitions();
}
public long insertNewWorkspaceScreenBeforeEmptyScreen(long screenId) {
@@ -1822,7 +1843,7 @@ public class Workspace extends SmoothPagedView
super.onStartReordering();
showOutlines();
// Reordering handles its own animations, disable the automatic ones.
- setLayoutTransition(null);
+ disableLayoutTransitions();
}
protected void onEndReordering() {
@@ -1839,7 +1860,7 @@ public class Workspace extends SmoothPagedView
mLauncher.getModel().updateWorkspaceScreenOrder(mLauncher, mScreenOrder);
// Re-enable auto layout transitions for page deletion.
- setLayoutTransition(mLayoutTransition);
+ enableLayoutTransitions();
}
public boolean isInOverviewMode() {