Merge "Bind the workspace synchronously if started on -1 screen." into jb-ub-now-kermit
This commit is contained in:
committed by
Android (Google) Code Review
commit
fa071f936a
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user