summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Daniel Lehmann <lehmannd@google.com> 2010-07-19 18:03:08 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2010-07-19 18:03:08 -0700
commit47f79bb4c53505ed2eceb5825f29f963f356d8b2 (patch)
treee4a0c40ff4537dad9a5738996cdfe470182b6f1d
parent3a18eb93da34721a2ba9f5b6d4cfc97ba0a8defd (diff)
parent156add957525746a4f7a430a6ba0cff8d1342339 (diff)
Merge "Replace try-catch code by proper type checking. Saves an exception for each blob."
-rw-r--r--core/java/android/provider/ContactsContract.java31
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());