diff options
author | Winson Chung <winsonc@google.com> | 2013-10-11 23:07:44 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-10-11 23:07:45 +0000 |
commit | dc734ef2c0a7152b0ada9425fd54c556128f3be4 (patch) | |
tree | c18aa2a82b16cf2eade33cca1f7d62dc5695d72f | |
parent | 88986e1c2ed306ed14cb576b270fc37ab65e98af (diff) | |
parent | 964df6b93e8171a0d3a6f212fed095065f1a65dd (diff) | |
download | android_packages_apps_Trebuchet-dc734ef2c0a7152b0ada9425fd54c556128f3be4.tar.gz android_packages_apps_Trebuchet-dc734ef2c0a7152b0ada9425fd54c556128f3be4.tar.bz2 android_packages_apps_Trebuchet-dc734ef2c0a7152b0ada9425fd54c556128f3be4.zip |
Merge "Fixing issue where the PagedView scroll is out of sync with the current page. (Bug 11050528)" into jb-ub-now-indigo-rose
-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() { |