Loading core/java/android/webkit/BrowserDownloadListener.java 0 → 100644 +57 −0 Original line number Diff line number Diff line /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; /** * An abstract download listener that allows passing extra information as * part of onDownloadStart callback. * @hide */ public abstract class BrowserDownloadListener implements DownloadListener { /** * Notify the host application that a file should be downloaded * @param url The full url to the content that should be downloaded * @param userAgent the user agent to be used for the download. * @param contentDisposition Content-disposition http header, if * present. * @param mimetype The mimetype of the content reported by the server * @param referer The referer associated with this url * @param contentLength The file size reported by the server */ public abstract void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, String referer, long contentLength); /** * Notify the host application that a file should be downloaded * @param url The full url to the content that should be downloaded * @param userAgent the user agent to be used for the download. * @param contentDisposition Content-disposition http header, if * present. * @param mimetype The mimetype of the content reported by the server * @param contentLength The file size reported by the server */ @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { onDownloadStart(url, userAgent, contentDisposition, mimetype, null, contentLength); } } core/java/android/webkit/BrowserFrame.java +2 −2 Original line number Diff line number Diff line Loading @@ -1137,7 +1137,7 @@ class BrowserFrame extends Handler { * DownloadListener. */ private void downloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) { String contentDisposition, String mimeType, String referer, long contentLength) { // This will only work if the url ends with the filename if (mimeType.isEmpty()) { try { Loading @@ -1157,7 +1157,7 @@ class BrowserFrame extends Handler { mKeyStoreHandler = new KeyStoreHandler(mimeType); } else { mCallbackProxy.onDownloadStart(url, userAgent, contentDisposition, mimeType, contentLength); contentDisposition, mimeType, referer, contentLength); } } Loading core/java/android/webkit/CallbackProxy.java +11 −3 Original line number Diff line number Diff line Loading @@ -452,11 +452,17 @@ class CallbackProxy extends Handler { String contentDisposition = msg.getData().getString("contentDisposition"); String mimetype = msg.getData().getString("mimetype"); String referer = msg.getData().getString("referer"); Long contentLength = msg.getData().getLong("contentLength"); if (mDownloadListener instanceof BrowserDownloadListener) { ((BrowserDownloadListener) mDownloadListener).onDownloadStart(url, userAgent, contentDisposition, mimetype, referer, contentLength); } else { mDownloadListener.onDownloadStart(url, userAgent, contentDisposition, mimetype, contentLength); } } break; case CREATE_WINDOW: Loading Loading @@ -1179,7 +1185,8 @@ class CallbackProxy extends Handler { * return false. */ public boolean onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { String contentDisposition, String mimetype, String referer, long contentLength) { // Do an unsynchronized quick check to avoid posting if no callback has // been set. if (mDownloadListener == null) { Loading @@ -1192,6 +1199,7 @@ class CallbackProxy extends Handler { bundle.putString("url", url); bundle.putString("userAgent", userAgent); bundle.putString("mimetype", mimetype); bundle.putString("referer", referer); bundle.putLong("contentLength", contentLength); bundle.putString("contentDisposition", contentDisposition); sendMessage(msg); Loading Loading
core/java/android/webkit/BrowserDownloadListener.java 0 → 100644 +57 −0 Original line number Diff line number Diff line /* * Copyright (C) 2012 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.webkit; /** * An abstract download listener that allows passing extra information as * part of onDownloadStart callback. * @hide */ public abstract class BrowserDownloadListener implements DownloadListener { /** * Notify the host application that a file should be downloaded * @param url The full url to the content that should be downloaded * @param userAgent the user agent to be used for the download. * @param contentDisposition Content-disposition http header, if * present. * @param mimetype The mimetype of the content reported by the server * @param referer The referer associated with this url * @param contentLength The file size reported by the server */ public abstract void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, String referer, long contentLength); /** * Notify the host application that a file should be downloaded * @param url The full url to the content that should be downloaded * @param userAgent the user agent to be used for the download. * @param contentDisposition Content-disposition http header, if * present. * @param mimetype The mimetype of the content reported by the server * @param contentLength The file size reported by the server */ @Override public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { onDownloadStart(url, userAgent, contentDisposition, mimetype, null, contentLength); } }
core/java/android/webkit/BrowserFrame.java +2 −2 Original line number Diff line number Diff line Loading @@ -1137,7 +1137,7 @@ class BrowserFrame extends Handler { * DownloadListener. */ private void downloadStart(String url, String userAgent, String contentDisposition, String mimeType, long contentLength) { String contentDisposition, String mimeType, String referer, long contentLength) { // This will only work if the url ends with the filename if (mimeType.isEmpty()) { try { Loading @@ -1157,7 +1157,7 @@ class BrowserFrame extends Handler { mKeyStoreHandler = new KeyStoreHandler(mimeType); } else { mCallbackProxy.onDownloadStart(url, userAgent, contentDisposition, mimeType, contentLength); contentDisposition, mimeType, referer, contentLength); } } Loading
core/java/android/webkit/CallbackProxy.java +11 −3 Original line number Diff line number Diff line Loading @@ -452,11 +452,17 @@ class CallbackProxy extends Handler { String contentDisposition = msg.getData().getString("contentDisposition"); String mimetype = msg.getData().getString("mimetype"); String referer = msg.getData().getString("referer"); Long contentLength = msg.getData().getLong("contentLength"); if (mDownloadListener instanceof BrowserDownloadListener) { ((BrowserDownloadListener) mDownloadListener).onDownloadStart(url, userAgent, contentDisposition, mimetype, referer, contentLength); } else { mDownloadListener.onDownloadStart(url, userAgent, contentDisposition, mimetype, contentLength); } } break; case CREATE_WINDOW: Loading Loading @@ -1179,7 +1185,8 @@ class CallbackProxy extends Handler { * return false. */ public boolean onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { String contentDisposition, String mimetype, String referer, long contentLength) { // Do an unsynchronized quick check to avoid posting if no callback has // been set. if (mDownloadListener == null) { Loading @@ -1192,6 +1199,7 @@ class CallbackProxy extends Handler { bundle.putString("url", url); bundle.putString("userAgent", userAgent); bundle.putString("mimetype", mimetype); bundle.putString("referer", referer); bundle.putLong("contentLength", contentLength); bundle.putString("contentDisposition", contentDisposition); sendMessage(msg); Loading