Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 601bbb6d authored by John Hoford's avatar John Hoford
Browse files

Prevent slide show request with only on slide

bug:8794694
Change-Id: Id3354733c7f35d9303b01f07ddf30f5555b07ddd
parent 49798939
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -538,6 +538,27 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
        mSlotView.invalidate();
    }

    private boolean canDoSlideShow() {
        if (mMediaSet == null) {
            return false;
        }

        final int[] count = new int[]{0};
        mMediaSet.enumerateMediaItems(new MediaSet.ItemConsumer() {
            @Override
            public void consume(int index, MediaItem item) {
                if (item.getMediaType() == MediaObject.MEDIA_TYPE_IMAGE) {
                    count[0]++;
                }
            }
        });

        if (count[0] < 2) { // you must have 2 pictures to go into slide show
            return false;
        }
        return true;
    }

    @Override
    protected boolean onCreateActionBar(Menu menu) {
        GalleryActionBar actionBar = mActivity.getGalleryActionBar();
@@ -553,6 +574,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster

            FilterUtils.setupMenuItems(actionBar, mMediaSetPath, true);

            menu.findItem(R.id.action_slideshow).setVisible(canDoSlideShow());
            menu.findItem(R.id.action_group_by).setVisible(mShowClusterMenu);
            menu.findItem(R.id.action_camera).setVisible(
                    MediaSetUtils.isCameraSource(mMediaSetPath)
+16 −0
Original line number Diff line number Diff line
@@ -760,16 +760,32 @@ public abstract class PhotoPage extends ActivityState implements
                supportedOperations &= ~MediaObject.SUPPORT_EDIT;
            }
        }

        MenuExecutor.updateMenuOperation(menu, supportedOperations);
    }

    private boolean canDoSlideShow() {

        if (mMediaSet == null || mCurrentPhoto == null) {
            return false;
        }
        if (mCurrentPhoto.getMediaType() != MediaObject.MEDIA_TYPE_IMAGE) {
            return false;
        }
        final int[] count = new int[]{0};

        mMediaSet.enumerateMediaItems(new MediaSet.ItemConsumer() {
            @Override
            public void consume(int index, MediaItem item) {
                if (item.getMediaType() == MediaObject.MEDIA_TYPE_IMAGE) {
                    count[0]++;
                }
            }
        });

        if (count[0] < 2) { // you must have 3 pictures to go into slide show
            return false;
        }
        return true;
    }