OSDN Git Service

Fix b/5287869 (and b/5369640).
authorYuli Huang <yuli@google.com>
Tue, 27 Sep 2011 17:21:15 +0000 (01:21 +0800)
committerYuli Huang <yuli@google.com>
Tue, 27 Sep 2011 17:21:15 +0000 (01:21 +0800)
Images from some app (MMS) may not have columns that PhotoEditor tries
to query, for example: the orientation. Just ignore the absent columns.

Change-Id: I1cda4e32241d9be7819453ede225388c7535c18c

AndroidManifest.xml
src/com/android/gallery3d/photoeditor/BitmapUtils.java
src/com/android/gallery3d/photoeditor/SaveCopyTask.java

index ab12d9b..cda1d70 100644 (file)
                 android:hardwareAccelerated="true">
             <intent-filter>
                 <action android:name="android.intent.action.EDIT" />
-                <data android:scheme="content" />
-                <data android:host="media" />
                 <data android:mimeType="image/*" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
index 5211a83..ef01e48 100644 (file)
@@ -126,11 +126,14 @@ public class BitmapUtils {
 
     private int getOrientation(Uri uri) {
         int orientation = 0;
-        Cursor cursor = context.getContentResolver().query(uri, IMAGE_PROJECTION, null, null, null);
+        Cursor cursor = null;
         try {
+            cursor = context.getContentResolver().query(uri, IMAGE_PROJECTION, null, null, null);
             if ((cursor != null) && cursor.moveToNext()) {
                 orientation = cursor.getInt(INDEX_ORIENTATION);
             }
+        } catch (Exception e) {
+            // Ignore error for no orientation column; just use the default orientation value 0.
         } finally {
             if (cursor != null) {
                 cursor.close();
index e43959e..d467563 100644 (file)
@@ -118,14 +118,16 @@ public class SaveCopyTask extends AsyncTask<Bitmap, Void, Uri> {
         double longitude = 0f;
 
         ContentResolver contentResolver = context.getContentResolver();
-        Cursor cursor = contentResolver.query(
-                sourceUri, IMAGE_PROJECTION, null, null, null);
+        Cursor cursor = null;
         try {
+            cursor = contentResolver.query(sourceUri, IMAGE_PROJECTION, null, null, null);
             if ((cursor != null) && cursor.moveToNext()) {
                 dateTaken = cursor.getLong(INDEX_DATE_TAKEN);
                 latitude = cursor.getDouble(INDEX_LATITUDE);
                 longitude = cursor.getDouble(INDEX_LONGITUDE);
             }
+        } catch (Exception e) {
+            // Ignore error for lacking property columns from the source.
         } finally {
             if (cursor != null) {
                 cursor.close();