OSDN Git Service

The apps might not have finished loading by the time we're doing this. Fixes bug...
authorJoe Onorato <joeo@android.com>
Thu, 5 Nov 2009 21:02:32 +0000 (16:02 -0500)
committerJoe Onorato <joeo@android.com>
Thu, 5 Nov 2009 21:03:12 +0000 (16:03 -0500)
src/com/android/launcher2/AllAppsView.java

index 5a315dd..37eb216 100644 (file)
@@ -253,7 +253,6 @@ public class AllAppsView extends RSSurfaceView
         if (!isVisible()) {
             return false;
         }
-
         final int iconCount = mRollo.mState.iconCount;
 
         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
@@ -553,6 +552,11 @@ public class AllAppsView extends RSSurfaceView
     }
 
     public void addApps(ArrayList<ApplicationInfo> list) {
+        if (mAllAppsList == null) {
+            // Not done loading yet.  We'll find out about it later.
+            return;
+        }
+
         final int N = list.size();
         if (mRollo != null) {
             mRollo.reallocAppsList(mRollo.mState.iconCount + N);
@@ -578,6 +582,11 @@ public class AllAppsView extends RSSurfaceView
     }
 
     public void removeApps(ArrayList<ApplicationInfo> list) {
+        if (mAllAppsList == null) {
+            // Not done loading yet.  We'll find out about it later.
+            return;
+        }
+
         final int N = list.size();
         for (int i=0; i<N; i++) {
             final ApplicationInfo item = list.get(i);
@@ -1169,7 +1178,7 @@ public class AllAppsView extends RSSurfaceView
         }
 
         void selectIcon(int index) {
-            if (index < 0 || index >= mAllAppsList.size()) {
+            if (mAllAppsList == null || index < 0 || index >= mAllAppsList.size()) {
                 mState.selectedIconIndex = -1;
             } else {
                 mState.selectedIconIndex = index;