Merge "Add support for HTML Media Capture "capture" attribute."

This commit is contained in:
Ben Murdoch
2012-04-13 06:06:50 -07:00
committed by Android (Google) Code Review
3 changed files with 18 additions and 7 deletions

View File

@@ -830,7 +830,8 @@ class CallbackProxy extends Handler {
case OPEN_FILE_CHOOSER:
if (mWebChromeClient != null) {
UploadFileMessageData data = (UploadFileMessageData)msg.obj;
mWebChromeClient.openFileChooser(data.getUploadFile(), data.getAcceptType());
mWebChromeClient.openFileChooser(data.getUploadFile(), data.getAcceptType(),
data.getCapture());
}
break;
@@ -1605,10 +1606,12 @@ class CallbackProxy extends Handler {
private static class UploadFileMessageData {
private UploadFile mCallback;
private String mAcceptType;
private String mCapture;
public UploadFileMessageData(UploadFile uploadFile, String acceptType) {
public UploadFileMessageData(UploadFile uploadFile, String acceptType, String capture) {
mCallback = uploadFile;
mAcceptType = acceptType;
mCapture = capture;
}
public UploadFile getUploadFile() {
@@ -1618,6 +1621,10 @@ class CallbackProxy extends Handler {
public String getAcceptType() {
return mAcceptType;
}
public String getCapture() {
return mCapture;
}
}
private class UploadFile implements ValueCallback<Uri> {
@@ -1636,13 +1643,13 @@ class CallbackProxy extends Handler {
/**
* Called by WebViewCore to open a file chooser.
*/
/* package */ Uri openFileChooser(String acceptType) {
/* package */ Uri openFileChooser(String acceptType, String capture) {
if (mWebChromeClient == null) {
return null;
}
Message myMessage = obtainMessage(OPEN_FILE_CHOOSER);
UploadFile uploadFile = new UploadFile();
UploadFileMessageData data = new UploadFileMessageData(uploadFile, acceptType);
UploadFileMessageData data = new UploadFileMessageData(uploadFile, acceptType, capture);
myMessage.obj = data;
synchronized (this) {
sendMessage(myMessage);

View File

@@ -346,9 +346,11 @@ public class WebChromeClient {
* onReceiveValue must be called to wake up the thread.a
* @param acceptType The value of the 'accept' attribute of the input tag
* associated with this file picker.
* @param capture The value of the 'capture' attribute of the input tag
* associated with this file picker.
* @hide
*/
public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType) {
public void openFileChooser(ValueCallback<Uri> uploadFile, String acceptType, String capture) {
uploadFile.onReceiveValue(null);
}

View File

@@ -394,10 +394,12 @@ public final class WebViewCore {
* Called by JNI. Open a file chooser to upload a file.
* @param acceptType The value of the 'accept' attribute of the
* input tag associated with this file picker.
* @param capture The value of the 'capture' attribute of the
* input tag associated with this file picker.
* @return String version of the URI.
*/
private String openFileChooser(String acceptType) {
Uri uri = mCallbackProxy.openFileChooser(acceptType);
private String openFileChooser(String acceptType, String capture) {
Uri uri = mCallbackProxy.openFileChooser(acceptType, capture);
if (uri != null) {
String filePath = "";
// Note - querying for MediaStore.Images.Media.DATA