Merge "Bind the workspace synchronously if started on -1 screen." into jb-ub-now-kermit

This commit is contained in:
Derek Prothro
2013-12-10 22:46:07 +00:00
committed by Android (Google) Code Review
2 changed files with 13 additions and 10 deletions
+2 -2
View File
@@ -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;
}
+11 -8
View File
@@ -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);
}
}