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

Commit d8dbb464 authored by Adam Cohen's avatar Adam Cohen
Browse files

Fix binding problem with no screens (issue 11768766)

Change-Id: I0a296892d4964913f38bf6d7bd2c2b17e1e0e8e0
parent d552dd90
Loading
Loading
Loading
Loading
+7 −21
Original line number Diff line number Diff line
@@ -2041,12 +2041,6 @@ public class LauncherModel extends BroadcastReceiver {
                }
            }

            // If we aren't filtering on a screen, then the set of items to load is the full set of
            // items given.
            if (currentScreenId < 0) {
                throw new RuntimeException("Unexpected screen id");
            }

            // Order the set of items by their containers first, this allows use to walk through the
            // list sequentially, build up a list of containers that are in the specified screen,
            // as well as all items in those containers.
@@ -2084,11 +2078,6 @@ public class LauncherModel extends BroadcastReceiver {
                ArrayList<LauncherAppWidgetInfo> appWidgets,
                ArrayList<LauncherAppWidgetInfo> currentScreenWidgets,
                ArrayList<LauncherAppWidgetInfo> otherScreenWidgets) {
            // If we aren't filtering on a screen, then the set of items to load is the full set of
            // widgets given.
            if (currentScreenId < 0) {
                throw new RuntimeException("Unexpected screen id");
            }

            for (LauncherAppWidgetInfo widget : appWidgets) {
                if (widget == null) continue;
@@ -2107,11 +2096,6 @@ public class LauncherModel extends BroadcastReceiver {
                HashMap<Long, FolderInfo> folders,
                HashMap<Long, FolderInfo> currentScreenFolders,
                HashMap<Long, FolderInfo> otherScreenFolders) {
            // If we aren't filtering on a screen, then the set of items to load is the full set of
            // widgets given.
            if (currentScreenId < 0) {
                throw new RuntimeException("Unexpected screen id");
            }

            for (long id : folders.keySet()) {
                ItemInfo info = itemsIdMap.get(id);
@@ -2261,13 +2245,15 @@ public class LauncherModel extends BroadcastReceiver {
            }

            final boolean isLoadingSynchronously = (synchronizeBindPage > -1);
            final int currentScreen = isLoadingSynchronously ? synchronizeBindPage :
            int currScreen = isLoadingSynchronously ? synchronizeBindPage :
                oldCallbacks.getCurrentWorkspaceScreen();
            if (currentScreen >= orderedScreenIds.size()) {
                Log.w(TAG, "Invalid screen id to synchronously load");
                return;
            if (currScreen >= orderedScreenIds.size()) {
                // There may be no workspace screens (just hotseat items and an empty page).
                currScreen = -1;
            }
            final long currentScreenId = orderedScreenIds.get(currentScreen);
            final int currentScreen = currScreen;
            final long currentScreenId =
                    currentScreen < 0 ? -1 : 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.