Merge branch 'froyo' into froyo-release
diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java
index daabbcc..b4f972b 100644
--- a/src/com/android/launcher2/DragController.java
+++ b/src/com/android/launcher2/DragController.java
@@ -163,6 +163,11 @@
Bitmap b = getViewBitmap(v);
+ if (b == null) {
+ // out of memory?
+ return;
+ }
+
int[] loc = mCoordinatesTemp;
v.getLocationOnScreen(loc);
int screenX = loc[0];
@@ -249,6 +254,10 @@
}
v.buildDrawingCache();
Bitmap cacheBitmap = v.getDrawingCache();
+ if (cacheBitmap == null) {
+ Log.e(TAG, "failed getViewBitmap(" + v + ")", new RuntimeException());
+ return null;
+ }
Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index 132f0e9..52f1224 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -204,7 +204,6 @@
private ImageView mNextView;
// Hotseats (quick-launch icons next to AllApps)
- // TODO: move these intial intents out to Uris in an XML resource
private static final int NUM_HOTSEATS = 2;
private String[] mHotseatConfig = null;
private Intent[] mHotseats = null;
@@ -782,6 +781,8 @@
@SuppressWarnings({"UnusedDeclaration"})
public void launchHotSeat(View v) {
+ if (isAllAppsVisible()) return;
+
int index = -1;
if (v.getId() == R.id.hotseat_left) {
index = 0;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index f65d956..c337c30 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -36,6 +36,7 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
@@ -363,7 +364,9 @@
*/
void addInScreen(View child, int screen, int x, int y, int spanX, int spanY, boolean insert) {
if (screen < 0 || screen >= getChildCount()) {
- throw new IllegalStateException("The screen must be >= 0 and < " + getChildCount());
+ Log.e(TAG, "The screen must be >= 0 and < " + getChildCount()
+ + " (was " + screen + "); skipping child");
+ return;
}
clearVacantCache();