diff options
author | Owen Lin <owenlin@google.com> | 2012-06-22 12:31:33 +0800 |
---|---|---|
committer | Owen Lin <owenlin@google.com> | 2012-06-22 18:14:49 +0800 |
commit | 40228b9d0ac27ae47c30d8fbcf6c253de707b71b (patch) | |
tree | d34175f9aa746c54418b48731ffdfb2fea412f17 /src | |
parent | 5d095edd840841440b029b4adc6e4fc2261d9bd6 (diff) | |
download | android_packages_apps_Snap-40228b9d0ac27ae47c30d8fbcf6c253de707b71b.tar.gz android_packages_apps_Snap-40228b9d0ac27ae47c30d8fbcf6c253de707b71b.tar.bz2 android_packages_apps_Snap-40228b9d0ac27ae47c30d8fbcf6c253de707b71b.zip |
Use MediaColumns.WIDTH and MediaColumns.HEIGHT only when they are available.
bug:6698720
Change-Id: Iaabfd1d5fe16b5d89f564d688a78e773ad36c8bd
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/gallery3d/app/CropImage.java | 27 | ||||
-rw-r--r-- | src/com/android/gallery3d/data/LocalImage.java | 20 |
2 files changed, 35 insertions, 12 deletions
diff --git a/src/com/android/gallery3d/app/CropImage.java b/src/com/android/gallery3d/app/CropImage.java index 4f450d85e..294e285ea 100644 --- a/src/com/android/gallery3d/app/CropImage.java +++ b/src/com/android/gallery3d/app/CropImage.java @@ -16,6 +16,7 @@ package com.android.gallery3d.app; +import android.annotation.TargetApi; import android.app.ActionBar; import android.app.ProgressDialog; import android.app.WallpaperManager; @@ -32,6 +33,7 @@ import android.graphics.Rect; import android.graphics.RectF; import android.media.ExifInterface; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.Handler; @@ -45,6 +47,7 @@ import android.view.Window; import android.widget.Toast; import com.android.gallery3d.R; +import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.common.BitmapUtils; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.DataManager; @@ -96,10 +99,6 @@ public class CropImage extends AbstractGalleryActivity { private static final int DEFAULT_COMPRESS_QUALITY = 90; private static final String TIME_STAMP_NAME = "'IMG'_yyyyMMdd_HHmmss"; - // Change these to Images.Media.WIDTH/HEIGHT after they are unhidden. - private static final String WIDTH = "width"; - private static final String HEIGHT = "height"; - public static final String KEY_RETURN_DATA = "return-data"; public static final String KEY_CROPPED_RECT = "cropped-rect"; public static final String KEY_ASPECT_X = "aspectX"; @@ -371,6 +370,15 @@ public class CropImage extends AbstractGalleryActivity { } } + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) + private static void setImageSize(ContentValues values, int width, int height) { + // The two fields are available since ICS but got published in JB + if (ApiHelper.HAS_MEDIA_COLUMNS_WIDTH_AND_HEIGHT) { + values.put(Images.Media.WIDTH, width); + values.put(Images.Media.HEIGHT, height); + } + } + private Uri savePicasaImage(JobContext jc, Bitmap cropped) { if (!DOWNLOAD_BUCKET.isDirectory() && !DOWNLOAD_BUCKET.mkdirs()) { throw new RuntimeException("cannot create download folder"); @@ -395,8 +403,7 @@ public class CropImage extends AbstractGalleryActivity { values.put(Images.Media.ORIENTATION, 0); values.put(Images.Media.DATA, output.getAbsolutePath()); values.put(Images.Media.SIZE, output.length()); - values.put(WIDTH, cropped.getWidth()); - values.put(HEIGHT, cropped.getHeight()); + setImageSize(values, cropped.getWidth(), cropped.getHeight()); double latitude = PicasaSource.getLatitude(mMediaItem); double longitude = PicasaSource.getLongitude(mMediaItem); @@ -434,8 +441,8 @@ public class CropImage extends AbstractGalleryActivity { values.put(Images.Media.ORIENTATION, 0); values.put(Images.Media.DATA, output.getAbsolutePath()); values.put(Images.Media.SIZE, output.length()); - values.put(WIDTH, cropped.getWidth()); - values.put(HEIGHT, cropped.getHeight()); + + setImageSize(values, cropped.getWidth(), cropped.getHeight()); if (GalleryUtils.isValidLocation(localImage.latitude, localImage.longitude)) { values.put(Images.Media.LATITUDE, localImage.latitude); @@ -467,8 +474,8 @@ public class CropImage extends AbstractGalleryActivity { values.put(Images.Media.ORIENTATION, 0); values.put(Images.Media.DATA, output.getAbsolutePath()); values.put(Images.Media.SIZE, output.length()); - values.put(WIDTH, cropped.getWidth()); - values.put(HEIGHT, cropped.getHeight()); + + setImageSize(values, cropped.getWidth(), cropped.getHeight()); return getContentResolver().insert( Images.Media.EXTERNAL_CONTENT_URI, values); diff --git a/src/com/android/gallery3d/data/LocalImage.java b/src/com/android/gallery3d/data/LocalImage.java index aa27c6f42..b64b2c3f0 100644 --- a/src/com/android/gallery3d/data/LocalImage.java +++ b/src/com/android/gallery3d/data/LocalImage.java @@ -16,6 +16,7 @@ package com.android.gallery3d.data; +import android.annotation.TargetApi; import android.content.ContentResolver; import android.content.ContentValues; import android.database.Cursor; @@ -24,11 +25,14 @@ import android.graphics.BitmapFactory; import android.graphics.BitmapRegionDecoder; import android.media.ExifInterface; import android.net.Uri; +import android.os.Build; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.ImageColumns; +import android.provider.MediaStore.MediaColumns; import android.util.Log; import com.android.gallery3d.app.GalleryApp; +import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.common.BitmapUtils; import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.util.ThreadPool.Job; @@ -74,10 +78,22 @@ public class LocalImage extends LocalMediaItem { ImageColumns.ORIENTATION, // 9 ImageColumns.BUCKET_ID, // 10 ImageColumns.SIZE, // 11 - ImageColumns.WIDTH, // 12 - ImageColumns.HEIGHT // 13 + "0", // 12 + "0" // 13 }; + static { + updateWidthAndHeightProjection(); + } + + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) + private static void updateWidthAndHeightProjection() { + if (ApiHelper.HAS_MEDIA_COLUMNS_WIDTH_AND_HEIGHT) { + PROJECTION[INDEX_WIDTH] = MediaColumns.WIDTH; + PROJECTION[INDEX_HEIGHT] = MediaColumns.HEIGHT; + } + } + private final GalleryApp mApplication; public int rotation; |