diff options
author | Mangesh Ghiware <mghiware@google.com> | 2012-10-07 23:55:43 -0700 |
---|---|---|
committer | Mangesh Ghiware <mghiware@google.com> | 2012-10-08 00:59:52 -0700 |
commit | 96e48d0946d3b3178a784f92fb40f21307cdd518 (patch) | |
tree | 4a03bdbfdcf21ca007ea5c64ed32d19119ce9575 /src/com/android/gallery3d/data | |
parent | 6f51ef0ceeac577e983a95a93eb79b42be8f4eaa (diff) | |
download | android_packages_apps_Snap-96e48d0946d3b3178a784f92fb40f21307cdd518.tar.gz android_packages_apps_Snap-96e48d0946d3b3178a784f92fb40f21307cdd518.tar.bz2 android_packages_apps_Snap-96e48d0946d3b3178a784f92fb40f21307cdd518.zip |
Share only 360-degree panoramas with new MIME type
Bug: 7302972
Instead of using the UsePanoramaViewer attribute in XMP metadata,
ensure that the panorama is full 360 degree by checking if the
cropped width is same as the full panorama width.
Change-Id: I66d864df96052f96db5fa19fb02b3abe214b4dec
Diffstat (limited to 'src/com/android/gallery3d/data')
-rw-r--r-- | src/com/android/gallery3d/data/LocalImage.java | 21 | ||||
-rw-r--r-- | src/com/android/gallery3d/data/MediaItem.java | 4 | ||||
-rw-r--r-- | src/com/android/gallery3d/data/MediaObject.java | 9 | ||||
-rw-r--r-- | src/com/android/gallery3d/data/UriImage.java | 16 |
4 files changed, 44 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/data/LocalImage.java b/src/com/android/gallery3d/data/LocalImage.java index ffcf9760a..52f707b60 100644 --- a/src/com/android/gallery3d/data/LocalImage.java +++ b/src/com/android/gallery3d/data/LocalImage.java @@ -103,6 +103,9 @@ public class LocalImage extends LocalMediaItem { private boolean mUsePanoramaViewer; private boolean mUsePanoramaViewerInitialized; + private boolean mIsPanorama360; + private boolean mIsPanorama360Initialized; + public LocalImage(Path path, GalleryApp application, Cursor cursor) { super(path, nextVersionNumber()); mApplication = application; @@ -249,8 +252,11 @@ public class LocalImage extends LocalMediaItem { if (usePanoramaViewer()) { operation |= SUPPORT_PANORAMA; - // disable destructive rotate for lightcycle panorama - operation &= ~SUPPORT_ROTATE; + if (isPanorama360()) { + operation |= SUPPORT_PANORAMA360; + // disable destructive rotate for 360 degree panorama + operation &= ~SUPPORT_ROTATE; + } } return operation; } @@ -361,4 +367,15 @@ public class LocalImage extends LocalMediaItem { } return mUsePanoramaViewer; } + + @Override + public boolean isPanorama360() { + // cache flag for faster access + if (!mIsPanorama360Initialized) { + mIsPanorama360 = LightCycleHelper.isPanorama360( + mApplication.getAndroidContext(), getContentUri()); + mIsPanorama360Initialized = true; + } + return mIsPanorama360; + } } diff --git a/src/com/android/gallery3d/data/MediaItem.java b/src/com/android/gallery3d/data/MediaItem.java index 77b86b847..da59abeef 100644 --- a/src/com/android/gallery3d/data/MediaItem.java +++ b/src/com/android/gallery3d/data/MediaItem.java @@ -107,6 +107,10 @@ public abstract class MediaItem extends MediaObject { return false; } + public boolean isPanorama360() { + return false; + } + // Returns width and height of the media item. // Returns 0, 0 if the information is not available. public abstract int getWidth(); diff --git a/src/com/android/gallery3d/data/MediaObject.java b/src/com/android/gallery3d/data/MediaObject.java index e738011ef..a16b9666d 100644 --- a/src/com/android/gallery3d/data/MediaObject.java +++ b/src/com/android/gallery3d/data/MediaObject.java @@ -38,10 +38,11 @@ public abstract class MediaObject { public static final int SUPPORT_IMPORT = 1 << 11; public static final int SUPPORT_TRIM = 1 << 12; public static final int SUPPORT_PANORAMA = 1 << 13; - public static final int SUPPORT_UNLOCK = 1 << 14; - public static final int SUPPORT_BACK = 1 << 15; - public static final int SUPPORT_ACTION = 1 << 16; - public static final int SUPPORT_CAMERA_SHORTCUT = 1 << 17; + public static final int SUPPORT_PANORAMA360 = 1 << 14; + public static final int SUPPORT_UNLOCK = 1 << 15; + public static final int SUPPORT_BACK = 1 << 16; + public static final int SUPPORT_ACTION = 1 << 17; + public static final int SUPPORT_CAMERA_SHORTCUT = 1 << 18; public static final int SUPPORT_ALL = 0xffffffff; // These are the bits returned from getMediaType(): diff --git a/src/com/android/gallery3d/data/UriImage.java b/src/com/android/gallery3d/data/UriImage.java index 737e85f25..a72ced2b8 100644 --- a/src/com/android/gallery3d/data/UriImage.java +++ b/src/com/android/gallery3d/data/UriImage.java @@ -58,6 +58,8 @@ public class UriImage extends MediaItem { private int mRotation; private boolean mUsePanoramaViewer; private boolean mUsePanoramaViewerInitialized; + private boolean mIsPanorama360; + private boolean mIsPanorama360Initialized; private GalleryApp mApplication; @@ -220,6 +222,9 @@ public class UriImage extends MediaItem { } if (usePanoramaViewer()) { supported |= SUPPORT_PANORAMA; + if (isPanorama360()) { + supported |= SUPPORT_PANORAMA360; + } } return supported; } @@ -302,4 +307,15 @@ public class UriImage extends MediaItem { } return mUsePanoramaViewer; } + + @Override + public boolean isPanorama360() { + // cache flag for faster access + if (!mIsPanorama360Initialized) { + mIsPanorama360 = LightCycleHelper.isPanorama360( + mApplication.getAndroidContext(), getContentUri()); + mIsPanorama360Initialized = true; + } + return mIsPanorama360; + } } |