diff options
author | 2010-07-19 18:03:08 -0700 | |
---|---|---|
committer | 2010-07-19 18:03:08 -0700 | |
commit | 47f79bb4c53505ed2eceb5825f29f963f356d8b2 (patch) | |
tree | e4a0c40ff4537dad9a5738996cdfe470182b6f1d | |
parent | 3a18eb93da34721a2ba9f5b6d4cfc97ba0a8defd (diff) | |
parent | 156add957525746a4f7a430a6ba0cff8d1342339 (diff) |
Merge "Replace try-catch code by proper type checking. Saves an exception for each blob."
-rw-r--r-- | core/java/android/provider/ContactsContract.java | 31 |
1 files changed, 12 insertions, 19 deletions
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 7df8487e2304..c3ec7a2aaf03 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -2113,28 +2113,21 @@ public final class ContactsContract { Data.DATA_VERSION); for (String key : DATA_KEYS) { final int columnIndex = cursor.getColumnIndexOrThrow(key); - if (cursor.isNull(columnIndex)) { - // don't put anything - } else { - try { + switch (cursor.getType(columnIndex)) { + case Cursor.FIELD_TYPE_NULL: + // don't put anything + break; + case Cursor.FIELD_TYPE_INTEGER: + case Cursor.FIELD_TYPE_FLOAT: + case Cursor.FIELD_TYPE_STRING: cv.put(key, cursor.getString(columnIndex)); - } catch (SQLiteException e) { + break; + case Cursor.FIELD_TYPE_BLOB: cv.put(key, cursor.getBlob(columnIndex)); - } + break; + default: + throw new IllegalStateException("Invalid or unhandled data type"); } - // TODO: go back to this version of the code when bug - // http://b/issue?id=2306370 is fixed. -// if (cursor.isNull(columnIndex)) { -// // don't put anything -// } else if (cursor.isLong(columnIndex)) { -// values.put(key, cursor.getLong(columnIndex)); -// } else if (cursor.isFloat(columnIndex)) { -// values.put(key, cursor.getFloat(columnIndex)); -// } else if (cursor.isString(columnIndex)) { -// values.put(key, cursor.getString(columnIndex)); -// } else if (cursor.isBlob(columnIndex)) { -// values.put(key, cursor.getBlob(columnIndex)); -// } } contact.addSubValue(ContactsContract.Data.CONTENT_URI, cv); } while (cursor.moveToNext()); |