summaryrefslogtreecommitdiffstats
path: root/core/java/android/provider
diff options
context:
space:
mode:
authorDaniel Lehmann <lehmannd@google.com>2010-07-19 18:01:10 -0700
committerDaniel Lehmann <lehmannd@google.com>2010-07-19 18:01:28 -0700
commit156add957525746a4f7a430a6ba0cff8d1342339 (patch)
tree09cdbbe41c4582073feafdb8e2bc1fa3eff3cdaa /core/java/android/provider
parentcaaf428f470d4ade8c917bcbd959a942201bbcaa (diff)
downloadframeworks_base-156add957525746a4f7a430a6ba0cff8d1342339.zip
frameworks_base-156add957525746a4f7a430a6ba0cff8d1342339.tar.gz
frameworks_base-156add957525746a4f7a430a6ba0cff8d1342339.tar.bz2
Replace try-catch code by proper type checking. Saves an exception for each blob.
Change-Id: I208ed0acb754391bd44b52887792563e92b39011
Diffstat (limited to 'core/java/android/provider')
-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 7df8487..c3ec7a2 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());