diff options
author | Chih-Chung Chang <chihchung@google.com> | 2011-10-18 19:54:31 +0800 |
---|---|---|
committer | Chih-Chung Chang <chihchung@google.com> | 2011-10-19 11:07:06 +0800 |
commit | bd47a5c6bcdcb127adb13c454fec00d4989c50b6 (patch) | |
tree | a8b27c18723e21ea97b09cd9d854f3d1d91b28c4 /src/com/android/gallery3d/app/Gallery.java | |
parent | c4d4922645bbd1fdfed782f452801be52834374f (diff) | |
download | android_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.java | 27 |
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(); } |