summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/data
diff options
context:
space:
mode:
authorMangesh Ghiware <mghiware@google.com>2012-10-07 23:55:43 -0700
committerMangesh Ghiware <mghiware@google.com>2012-10-08 00:59:52 -0700
commit51ebe5f71b9f00af95c8d64f1ff895fc7b9aa018 (patch)
tree9d7d3f6b37ae7381949d8ccebc5eef6900dd2ac1 /src/com/android/gallery3d/data
parent76f1881067d7ca4eda6d3e398567473d2913c5d1 (diff)
downloadandroid_packages_apps_Gallery2-51ebe5f71b9f00af95c8d64f1ff895fc7b9aa018.tar.gz
android_packages_apps_Gallery2-51ebe5f71b9f00af95c8d64f1ff895fc7b9aa018.tar.bz2
android_packages_apps_Gallery2-51ebe5f71b9f00af95c8d64f1ff895fc7b9aa018.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.java21
-rw-r--r--src/com/android/gallery3d/data/MediaItem.java4
-rw-r--r--src/com/android/gallery3d/data/MediaObject.java9
-rw-r--r--src/com/android/gallery3d/data/UriImage.java16
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;
+ }
}