Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(538)

Unified Diff: ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java

Issue 2932433002: Photo Picker dialog: Pipe through the MIME type selections from the web page. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 7d95743df240f663026a506299c60b3878bfcb36..c82004f5b04433f9460b7dbf9a50575315f7753b 100644
--- a/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
+++ b/ui/android/java/src/org/chromium/ui/base/SelectFileDialog.java
@@ -218,10 +218,11 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback,
if (mWindowAndroid.showIntent(soundRecorder, this, R.string.low_memory_error)) return;
}
- // Use new photo picker, if available.
+ // Use the new photo picker, if available.
Activity activity = mWindowAndroid.getActivity().get();
- if (activity != null && usePhotoPicker(mFileTypes)
- && UiUtils.showPhotoPicker(activity, this, mAllowMultiple)) {
+ List<String> imageMimeTypes = convertToImageMimeTypes(mFileTypes);
+ if (activity != null && imageMimeTypes != null
+ && UiUtils.showPhotoPicker(activity, this, mAllowMultiple, imageMimeTypes)) {
return;
}
@@ -273,16 +274,23 @@ public class SelectFileDialog implements WindowAndroid.IntentCallback,
}
/**
- * Determines if a photo picker can be used instead of the stock Android picker.
- * @return True if only images types are being requested.
+ * Converts a list of extensions and Mime types to a list of de-duped Mime types containing
+ * image types only. If the input list contains a non-image type, then null is returned.
+ * @param fileTypes the list of filetypes (extensions and Mime types) to convert.
+ * @return A de-duped list of Image Mime types only, or null if one or more non-image types were
+ * given as input.
*/
@VisibleForTesting
- public static boolean usePhotoPicker(List<String> fileTypes) {
+ public static List<String> convertToImageMimeTypes(List<String> fileTypes) {
+ List<String> mimeTypes = new ArrayList<>();
for (String type : fileTypes) {
String mimeType = ensureMimeType(type);
- if (!mimeType.startsWith("image/")) return false;
+ if (!mimeType.startsWith("image/")) {
+ return null;
+ }
+ if (!mimeTypes.contains(mimeType)) mimeTypes.add(mimeType);
}
- return true;
+ return mimeTypes;
}
/**
« no previous file with comments | « ui/android/java/src/org/chromium/ui/UiUtils.java ('k') | ui/android/junit/src/org/chromium/ui/base/SelectFileDialogTest.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698