summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-11-27 11:55:48 -0800
committerAdam Cohen <adamcohen@google.com>2013-11-27 11:58:48 -0800
commitd8dbb46468e0a8860468661a6edfb7969bfdf0a7 (patch)
tree4c304b818ffa5b42b2df8aa9ac02c92bf2712f76 /src
parentd552dd90f1da32e1be2dd95ffed57c65d40cb651 (diff)
downloadandroid_packages_apps_Trebuchet-d8dbb46468e0a8860468661a6edfb7969bfdf0a7.tar.gz
android_packages_apps_Trebuchet-d8dbb46468e0a8860468661a6edfb7969bfdf0a7.tar.bz2
android_packages_apps_Trebuchet-d8dbb46468e0a8860468661a6edfb7969bfdf0a7.zip
Fix binding problem with no screens (issue 11768766)
Change-Id: I0a296892d4964913f38bf6d7bd2c2b17e1e0e8e0
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/LauncherModel.java28
1 files changed, 7 insertions, 21 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 6a6cb3538..4d9dff93a 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -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.