diff options
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; + } } |