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

Commit c5c7b5c1 authored by yanglv's avatar yanglv Committed by Arne Coucheron
Browse files

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
parent 514f0319
Loading
Loading
Loading
Loading
+31 −0
Original line number Diff line number Diff line
@@ -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;
@@ -635,6 +638,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) {
@@ -658,6 +662,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;
    }

@@ -774,6 +798,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) {
@@ -785,6 +815,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: {