diff options
author | Winson Chung <winsonc@google.com> | 2013-10-11 16:10:58 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-10-11 16:10:58 -0700 |
commit | a78bfcc9d02da4d47598461c1549742378d27b85 (patch) | |
tree | 1b81477f29fbf2a54902e80d2a4e04b80e52d979 | |
parent | 005f4ad033973d84c5073a954b9507cd38ae502b (diff) | |
parent | 8c9802ef3bf679a5094a905da91e053110c4dbeb (diff) | |
download | android_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.java | 25 |
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() { |