From e0a45e8852ee492ee0467b957cd2a7defc5ddcef Mon Sep 17 00:00:00 2001 From: yanglv Date: Thu, 14 Nov 2013 17:13:08 +0800 Subject: Gallery2: Remove slideshow option if there are only videos Enter Gallery and open folder whose files are all video, press menu key should no slideshow option. Add condition to remove slideshow if the folder are all video files. CRs-Fixed: 574984 Change-Id: Ib1603f1609b6490e44039ab64abefb44f14bd477 --- src/com/android/gallery3d/app/AlbumPage.java | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java index 9ff205454..7f947d8f3 100644 --- a/src/com/android/gallery3d/app/AlbumPage.java +++ b/src/com/android/gallery3d/app/AlbumPage.java @@ -68,6 +68,7 @@ import com.android.gallery3d.util.Future; import com.android.gallery3d.util.GalleryUtils; import com.android.gallery3d.util.MediaSetUtils; +import java.util.ArrayList; import java.util.Locale; public class AlbumPage extends ActivityState implements GalleryActionBar.ClusterRunner, @@ -132,6 +133,8 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster private Handler mHandler; private static final int MSG_PICK_PHOTO = 0; + private Menu mActionMenu; + private PhotoFallbackEffect mResumeEffect; private Config.AlbumPage mConfig; @@ -615,6 +618,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster @Override protected boolean onCreateActionBar(Menu menu) { + mActionMenu = menu; //GalleryActionBar actionBar = mActivity.getGalleryActionBar(); MenuInflater inflator = getSupportMenuInflater(); if (mGetContent) { @@ -637,6 +641,26 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster } //actionBar.setSubtitle(null); + // remove slideshow if all are videos + if (allVideoFiles() && !mGetContent){ + menu.findItem(R.id.action_slideshow).setVisible(false); + } + return true; + } + + private boolean allVideoFiles() { + if (mMediaSet == null) + return false; + int count = mMediaSet.getMediaItemCount(); + MediaItem item; + for (int i = 0; i < count; i++) { + item = mMediaSet.getMediaItem(i, 1).get(0); + if (item == null) { + continue; + } + if (item.getMimeType().trim().startsWith("image/")) + return false; + } return true; } @@ -753,6 +777,12 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster } } + private void updateMenuItem() { + if (allVideoFiles() && !mGetContent) { + mActionMenu.findItem(R.id.action_slideshow).setVisible(false); + } + } + @Override public void onSelectionModeChange(int mode) { switch (mode) { @@ -764,6 +794,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster case SelectionManager.LEAVE_SELECTION_MODE: { mActionModeHandler.finishActionMode(); mRootPane.invalidate(); + updateMenuItem(); break; } case SelectionManager.SELECT_ALL_MODE: { -- cgit v1.2.3