summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2012-06-25 14:49:02 -0700
committerMichael Jurka <mikejurka@google.com>2012-06-25 15:04:47 -0700
commit816474f06b9bea400f4511fa35b63a7f18a54c54 (patch)
tree13a22393113113b7a7fceff0e65eec43cd9084ca /src
parent8bd65f5c57b8bae2fb82256e89ac30ddc0769319 (diff)
downloadandroid_packages_apps_Trebuchet-816474f06b9bea400f4511fa35b63a7f18a54c54.tar.gz
android_packages_apps_Trebuchet-816474f06b9bea400f4511fa35b63a7f18a54c54.tar.bz2
android_packages_apps_Trebuchet-816474f06b9bea400f4511fa35b63a7f18a54c54.zip
Adding debug code for LauncherModel crash
Change-Id: I9b8c053707cd5714874006c249651a69378569d2
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher2/BubbleTextView.java8
-rw-r--r--src/com/android/launcher2/LauncherModel.java29
2 files changed, 36 insertions, 1 deletions
diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java
index ddc4b9fa0..c5bed1694 100644
--- a/src/com/android/launcher2/BubbleTextView.java
+++ b/src/com/android/launcher2/BubbleTextView.java
@@ -111,6 +111,14 @@ public class BubbleTextView extends TextView {
}
@Override
+ public void setTag(Object tag) {
+ if (tag != null) {
+ LauncherModel.checkItemInfo((ItemInfo) tag);
+ }
+ super.setTag(tag);
+ }
+
+ @Override
protected void drawableStateChanged() {
if (isPressed()) {
// In this case, we have already created the pressed outline on ACTION_DOWN,
diff --git a/src/com/android/launcher2/LauncherModel.java b/src/com/android/launcher2/LauncherModel.java
index bada5cbb2..520d3f4bc 100644
--- a/src/com/android/launcher2/LauncherModel.java
+++ b/src/com/android/launcher2/LauncherModel.java
@@ -208,6 +208,33 @@ public class LauncherModel extends BroadcastReceiver {
}
}
+ static void checkItemInfo(final ItemInfo item) {
+ final StackTraceElement[] stackTrace = new Throwable().getStackTrace();
+ final long itemId = item.id;
+ Runnable r = new Runnable() {
+ public void run() {
+ ItemInfo modelItem = sItemsIdMap.get(itemId);
+ if (item != modelItem) {
+ // the modelItem needs to match up perfectly with item if our model is to be
+ // consistent with the database-- for now, just require modelItem == item
+ String msg = "item: " + ((item != null) ? item.toString() : "null") +
+ "modelItem: " + ((modelItem != null) ? modelItem.toString() : "null") +
+ "Error: ItemInfo passed to checkItemInfo doesn't match original";
+ RuntimeException e = new RuntimeException(msg);
+ e.setStackTrace(stackTrace);
+ throw e;
+ }
+ }
+ };
+
+ if (sWorkerThread.getThreadId() == Process.myTid()) {
+ r.run();
+ } else {
+ sWorker.post(r);
+ }
+
+ }
+
static void updateItemInDatabaseHelper(Context context, final ContentValues values,
final ItemInfo item, final String callingFunction) {
final long itemId = item.id;
@@ -304,7 +331,7 @@ public class LauncherModel extends BroadcastReceiver {
values.put(LauncherSettings.Favorites.SPANY, item.spanY);
values.put(LauncherSettings.Favorites.SCREEN, item.screen);
- updateItemInDatabaseHelper(context, values, item, "moveItemInDatabase");
+ updateItemInDatabaseHelper(context, values, item, "modifyItemInDatabase");
}
/**