diff options
author | Derek Prothro <dprothro@google.com> | 2013-12-10 14:00:37 -0500 |
---|---|---|
committer | Derek Prothro <dprothro@google.com> | 2013-12-10 15:05:41 -0500 |
commit | 7aff399974c756930070d82d7b2df88f125dacd6 (patch) | |
tree | c8717f07e36d59b120737be17609907857be12cb /src | |
parent | 33231f587e1a6f716af68e6198df774d2847a8e5 (diff) | |
download | android_packages_apps_Trebuchet-7aff399974c756930070d82d7b2df88f125dacd6.tar.gz android_packages_apps_Trebuchet-7aff399974c756930070d82d7b2df88f125dacd6.tar.bz2 android_packages_apps_Trebuchet-7aff399974c756930070d82d7b2df88f125dacd6.zip |
Bind the workspace synchronously if started on -1 screen.
Previously, LoaderTask would be run asynchronously to bind
the workspace when started on -1 which would cause the user's
wallpaper to briefly flash when rotating the device on -1.
Bug: 11802691
Change-Id: I3a1a7a32fa28a81e041a283a93d808d5a8884133
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 19 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index e2301ba69..9aaee5aaf 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -456,7 +456,7 @@ public class Launcher extends Activity if (DISABLE_SYNCHRONOUS_BINDING_CURRENT_PAGE || sPausedFromUserAction) { // If the user leaves launcher, then we should just load items asynchronously when // they return. - mModel.startLoader(true, -1); + mModel.startLoader(true, PagedView.INVALID_RESTORE_PAGE); } else { // We only load the page synchronously if the user rotates (or triggers a // configuration change) while launcher is in the foreground @@ -914,7 +914,7 @@ public class Launcher extends Activity sPausedFromUserAction = false; if (mRestoring || mOnResumeNeedsLoad) { mWorkspaceLoading = true; - mModel.startLoader(true, -1); + mModel.startLoader(true, PagedView.INVALID_RESTORE_PAGE); mRestoring = false; mOnResumeNeedsLoad = false; } diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index a69617ac7..03511a4a6 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -75,6 +75,7 @@ public class LauncherModel extends BroadcastReceiver { public static final boolean UPGRADE_USE_MORE_APPS_FOLDER = false; private static final int ITEMS_CHUNK = 6; // batch size for the workspace icons + private static final long INVALID_SCREEN_ID = -1L; private final boolean mAppsCanBeOnRemoveableStorage; private final LauncherAppState mApp; @@ -1158,7 +1159,7 @@ public class LauncherModel extends BroadcastReceiver { } } if (runLoader) { - startLoader(false, -1); + startLoader(false, PagedView.INVALID_RESTORE_PAGE); } } @@ -1192,7 +1193,8 @@ public class LauncherModel extends BroadcastReceiver { // also, don't downgrade isLaunching if we're already running isLaunching = isLaunching || stopLoaderLocked(); mLoaderTask = new LoaderTask(mApp.getContext(), isLaunching); - if (synchronousBindPage > -1 && mAllAppsLoaded && mWorkspaceLoaded) { + if (synchronousBindPage != PagedView.INVALID_RESTORE_PAGE + && mAllAppsLoaded && mWorkspaceLoaded) { mLoaderTask.runBindSynchronousPage(synchronousBindPage); } else { sWorkerThread.setPriority(Thread.NORM_PRIORITY); @@ -1360,7 +1362,7 @@ public class LauncherModel extends BroadcastReceiver { } void runBindSynchronousPage(int synchronousBindPage) { - if (synchronousBindPage < 0) { + if (synchronousBindPage == PagedView.INVALID_RESTORE_PAGE) { // Ensure that we have a valid page index to load synchronously throw new RuntimeException("Should not call runBindSynchronousPage() without " + "valid page index"); @@ -2245,16 +2247,17 @@ public class LauncherModel extends BroadcastReceiver { orderedScreenIds.addAll(sBgWorkspaceScreens); } - final boolean isLoadingSynchronously = (synchronizeBindPage > -1); + final boolean isLoadingSynchronously = + synchronizeBindPage != PagedView.INVALID_RESTORE_PAGE; int currScreen = isLoadingSynchronously ? synchronizeBindPage : oldCallbacks.getCurrentWorkspaceScreen(); if (currScreen >= orderedScreenIds.size()) { // There may be no workspace screens (just hotseat items and an empty page). - currScreen = -1; + currScreen = PagedView.INVALID_RESTORE_PAGE; } final int currentScreen = currScreen; - final long currentScreenId = - currentScreen < 0 ? -1 : orderedScreenIds.get(currentScreen); + final long currentScreenId = currentScreen < 0 + ? INVALID_SCREEN_ID : orderedScreenIds.get(currentScreen); // Load all the items that are on the current page first (and in the process, unbind // all the existing workspace items before we call startBinding() below. @@ -2299,7 +2302,7 @@ public class LauncherModel extends BroadcastReceiver { r = new Runnable() { public void run() { Callbacks callbacks = tryGetCallbacks(oldCallbacks); - if (callbacks != null && currentScreen >= 0) { + if (callbacks != null && currentScreen != PagedView.INVALID_RESTORE_PAGE) { callbacks.onPageBoundSynchronously(currentScreen); } } |