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 2b10d1a5fb5b124fc8f1bba0882dd57ace0ea98a..841b60ad2a91d18828119299305fdd7f04081604 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.PhotoPickerListener; |
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, PhotoPickerListener { |
private static final String TAG = "SelectFileDialog"; |
private static final String IMAGE_TYPE = "image/"; |
private static final String VIDEO_TYPE = "video/"; |
@@ -240,6 +242,12 @@ public class SelectFileDialog |
if (soundRecorder != null) extraIntents.add(soundRecorder); |
} |
+ // Use new photo picker, if available. |
+ Activity activity = mWindowAndroid.getActivity().get(); |
+ if (activity != null && UiUtils.showPhotoPicker(activity, this, mAllowMultiple)) { |
+ return; |
+ } |
+ |
Intent chooser = new Intent(Intent.ACTION_CHOOSER); |
if (!extraIntents.isEmpty()) { |
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, |
@@ -252,6 +260,33 @@ public class SelectFileDialog |
} |
} |
+ @Override |
+ public void onPickerUserAction(Action action, String[] photos) { |
+ UiUtils.dismissPhotoPicker(); |
+ |
+ 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) { |