| Index: ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
| diff --git a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
| index 3415ae5b6cd781260eee8dd4cc18bb895578c6cb..7fb1ae47120fc0c6f6198ef057c0a0e17ac1fe61 100644
|
| --- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
| +++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
|
| @@ -28,6 +28,7 @@ import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.base.annotations.JNINamespace;
|
| import org.chromium.base.annotations.MainDex;
|
| import org.chromium.base.metrics.RecordHistogram;
|
| +import org.chromium.ui.OnPhotoPickerListener;
|
| import org.chromium.ui.R;
|
| import org.chromium.ui.UiUtils;
|
|
|
| @@ -36,6 +37,7 @@ import java.io.IOException;
|
| import java.util.ArrayList;
|
| import java.util.Arrays;
|
| import java.util.List;
|
| +import java.util.Map;
|
|
|
| /**
|
| * A dialog that is triggered from a file input field that allows a user to select a file based on
|
| @@ -43,8 +45,8 @@ import java.util.List;
|
| */
|
| @JNINamespace("ui")
|
| @MainDex
|
| -public class SelectFileDialog
|
| - implements WindowAndroid.IntentCallback, WindowAndroid.PermissionCallback {
|
| +public class SelectFileDialog implements WindowAndroid.IntentCallback,
|
| + WindowAndroid.PermissionCallback, OnPhotoPickerListener {
|
| private static final String TAG = "SelectFileDialog";
|
| private static final String IMAGE_TYPE = "image/";
|
| private static final String VIDEO_TYPE = "video/";
|
| @@ -230,6 +232,14 @@ public class SelectFileDialog
|
| if (soundRecorder != null) extraIntents.add(soundRecorder);
|
| }
|
|
|
| + // Use new photo picker, if available.
|
| + Activity activity = mWindowAndroid.getActivity().get();
|
| + if (activity != null) {
|
| + if (UiUtils.showFilePicker(activity, this, mAllowMultiple)) {
|
| + return;
|
| + }
|
| + }
|
| +
|
| Intent chooser = new Intent(Intent.ACTION_CHOOSER);
|
| if (!extraIntents.isEmpty()) {
|
| chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS,
|
| @@ -242,6 +252,33 @@ public class SelectFileDialog
|
| }
|
| }
|
|
|
| + @Override
|
| + public void onPickerUserAction(Action action, String[] photos) {
|
| + UiUtils.dismissFilePicker();
|
| +
|
| + switch (action) {
|
| + case PHOTOS_SELECTED:
|
| + // TODO(finnur): Implement.
|
| + onFileNotSelected();
|
| + break;
|
| +
|
| + case LAUNCH_GALLERY:
|
| + // TODO(finnur): Implement.
|
| + onFileNotSelected();
|
| + break;
|
| +
|
| + case LAUNCH_CAMERA:
|
| + // TODO(finnur): Implement.
|
| + onFileNotSelected();
|
| + break;
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public Map<String, Long> getFilesForTesting() {
|
| + return null;
|
| + }
|
| +
|
| private class GetCameraIntentTask extends AsyncTask<Void, Void, Uri> {
|
| @Override
|
| public Uri doInBackground(Void...voids) {
|
|
|