summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/Gallery.java
diff options
context:
space:
mode:
authorChih-Chung Chang <chihchung@google.com>2011-10-18 19:54:31 +0800
committerChih-Chung Chang <chihchung@google.com>2011-10-19 11:07:06 +0800
commitbd47a5c6bcdcb127adb13c454fec00d4989c50b6 (patch)
treea8b27c18723e21ea97b09cd9d854f3d1d91b28c4 /src/com/android/gallery3d/app/Gallery.java
parentc4d4922645bbd1fdfed782f452801be52834374f (diff)
downloadandroid_packages_apps_Gallery2-bd47a5c6bcdcb127adb13c454fec00d4989c50b6.tar.gz
android_packages_apps_Gallery2-bd47a5c6bcdcb127adb13c454fec00d4989c50b6.tar.bz2
android_packages_apps_Gallery2-bd47a5c6bcdcb127adb13c454fec00d4989c50b6.zip
Fix 5352588: Accept view intent without URI.
Change-Id: I719fd853b66c05c4fdbe70ff97993b9487997694
Diffstat (limited to 'src/com/android/gallery3d/app/Gallery.java')
-rw-r--r--src/com/android/gallery3d/app/Gallery.java27
1 files changed, 21 insertions, 6 deletions
diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java
index 15534bc08..1ffa6ecde 100644
--- a/src/com/android/gallery3d/app/Gallery.java
+++ b/src/com/android/gallery3d/app/Gallery.java
@@ -152,7 +152,14 @@ public final class Gallery extends AbstractGalleryActivity {
finish();
return;
}
- if (contentType.startsWith(
+ if (uri == null) {
+ int typeBits = GalleryUtils.determineTypeBits(this, intent);
+ data.putInt(KEY_TYPE_BITS, typeBits);
+ data.putString(AlbumSetPage.KEY_MEDIA_PATH,
+ getDataManager().getTopSetPath(typeBits));
+ getStateManager().setLaunchGalleryOnTop(true);
+ getStateManager().startState(AlbumSetPage.class, data);
+ } else if (contentType.startsWith(
ContentResolver.CURSOR_DIR_BASE_TYPE)) {
int mediaType = intent.getIntExtra(KEY_MEDIA_TYPES, 0);
if (mediaType != 0) {
@@ -160,11 +167,19 @@ public final class Gallery extends AbstractGalleryActivity {
KEY_MEDIA_TYPES, String.valueOf(mediaType))
.build();
}
- Path albumPath = dm.findPathByUri(uri);
- if (albumPath != null) {
- MediaSet mediaSet = (MediaSet) dm.getMediaObject(albumPath);
- data.putString(AlbumPage.KEY_MEDIA_PATH, albumPath.toString());
- getStateManager().startState(AlbumPage.class, data);
+ Path setPath = dm.findPathByUri(uri);
+ MediaSet mediaSet = null;
+ if (setPath != null) {
+ mediaSet = (MediaSet) dm.getMediaObject(setPath);
+ }
+ if (mediaSet != null) {
+ if (mediaSet.isLeafAlbum()) {
+ data.putString(AlbumPage.KEY_MEDIA_PATH, setPath.toString());
+ getStateManager().startState(AlbumPage.class, data);
+ } else {
+ data.putString(AlbumSetPage.KEY_MEDIA_PATH, setPath.toString());
+ getStateManager().startState(AlbumSetPage.class, data);
+ }
} else {
startDefaultPage();
}