chromium/ui/android/java/src/org/chromium/ui/base/PhotoPickerDelegate.java

// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package org.chromium.ui.base;

import java.util.List;

/** A delegate interface for the photo picker. */
public interface PhotoPickerDelegate {
    /**
     * Called to display the photo picker.
     *
     * @param windowAndroid The window of the Activity.
     * @param listener The listener that will be notified of the action the user took in the picker.
     * @param allowMultiple Whether the dialog should allow multiple images to be selected.
     * @param mimeTypes A list of mime types to show in the dialog.
     * @return the PhotoPicker object.
     */
    PhotoPicker showPhotoPicker(
            WindowAndroid windowAndroid,
            PhotoPickerListener listener,
            boolean allowMultiple,
            List<String> mimeTypes);

    /**
     * Returns whether the Android media picker, launched indirectly (via ACTION_GET_CONTENT), is
     * preferred over the Chrome media picker.
     */
    boolean launchViaActionGetContent();

    /**
     * Returns whether the Android Media Picker, launched directly (via ACTION_PICK_IMAGE), is
     * preferred over the Chrome Media Picker.
     */
    boolean launchViaActionPickImages();

    /**
     * Returns whether the Android Media Picker, launched directly (via ACTION_PICK_IMAGE with more
     * complex MIME type support), is preferred over the Chrome Media Picker.
     */
    boolean launchViaActionPickImagesPlus();

    /**
     * Returns whether the Chrome Media Picker, without Browse, is the preferred Media Picker
     * flavor.
     */
    boolean launchRegularWithoutBrowse();
}