diff options
author | Adam Cohen <adamcohen@google.com> | 2013-07-24 18:47:10 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-07-24 18:47:10 +0000 |
commit | 390af56a31562cc7c42a719db4192d0cee0b0f9d (patch) | |
tree | bd634c88ac11e1e6ecff70f8f23681413697db39 | |
parent | ec40b2b90c649be3b513af2ba174db56b54b64f6 (diff) | |
parent | 8c87cd83e09cd361c68069c84940dbaf20e9860d (diff) | |
download | android_packages_apps_Trebuchet-390af56a31562cc7c42a719db4192d0cee0b0f9d.tar.gz android_packages_apps_Trebuchet-390af56a31562cc7c42a719db4192d0cee0b0f9d.tar.bz2 android_packages_apps_Trebuchet-390af56a31562cc7c42a719db4192d0cee0b0f9d.zip |
Merge "Fixing issue where the page was reset to 0 on rotation." into jb-ub-gel-agar
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 16 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 359204542..321c4e712 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -990,7 +990,7 @@ public class Launcher extends Activity int currentScreen = savedState.getInt(RUNTIME_STATE_CURRENT_SCREEN, -1); if (currentScreen > -1) { - mWorkspace.setCurrentPage(currentScreen); + mWorkspace.setRestorePage(currentScreen); } final long pendingAddContainer = savedState.getLong(RUNTIME_STATE_PENDING_ADD_CONTAINER, -1); diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index aaff58886..ed88ea90d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -104,6 +104,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc protected boolean mFirstLayout = true; protected int mCurrentPage; + protected int mRestorePage = -1; protected int mChildCountOnLastLayout; protected int mNextPage = INVALID_PAGE; @@ -506,6 +507,14 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc invalidate(); } + /** + * The restore page will be set in place of the current page at the next (likely first) + * layout. + */ + void setRestorePage(int restorePage) { + mRestorePage = restorePage; + } + protected void notifyPageSwitchListener() { if (mPageSwitchListener != null) { mPageSwitchListener.onPageSwitch(getPageAt(mCurrentPage), mCurrentPage); @@ -870,7 +879,12 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc if (mScroller.isFinished() && mChildCountOnLastLayout != getChildCount() && !mDeferringForDelete) { - setCurrentPage(getNextPage()); + if (mRestorePage > -1) { + setCurrentPage(mRestorePage); + mRestorePage = -1; + } else { + setCurrentPage(getNextPage()); + } } mChildCountOnLastLayout = getChildCount(); } |