Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa071f93 authored by Derek Prothro's avatar Derek Prothro Committed by Android (Google) Code Review
Browse files

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

parents 8e88cb84 7aff3999
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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
Original line number Diff line number Diff line
@@ -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);
                        }
                    }