1a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun/*
2a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * Copyright (C) 2012 The Android Open Source Project
3a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun *
4a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * Licensed under the Apache License, Version 2.0 (the "License");
5a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * you may not use this file except in compliance with the License.
6a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * You may obtain a copy of the License at
7a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun *
8a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun *      http://www.apache.org/licenses/LICENSE-2.0
9a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun *
10a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * Unless required by applicable law or agreed to in writing, software
11a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * distributed under the License is distributed on an "AS IS" BASIS,
12a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * See the License for the specific language governing permissions and
14a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * limitations under the License.
15a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun */
16a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
17a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurunpackage android.webkit;
18a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
19a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun/**
20a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * An abstract download listener that allows passing extra information as
21a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * part of onDownloadStart callback.
22a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun * @hide
23a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun */
24a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurunpublic abstract class BrowserDownloadListener implements DownloadListener {
25a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
26a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    /**
27a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * Notify the host application that a file should be downloaded
28a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param url The full url to the content that should be downloaded
29a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param userAgent the user agent to be used for the download.
30a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param contentDisposition Content-disposition http header, if
31a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     *                           present.
32a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param mimetype The mimetype of the content reported by the server
33a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param referer The referer associated with this url
34a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param contentLength The file size reported by the server
35a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     */
36a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    public abstract void onDownloadStart(String url, String userAgent,
37a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun            String contentDisposition, String mimetype, String referer,
38a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun            long contentLength);
39a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
40a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
41a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    /**
42a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * Notify the host application that a file should be downloaded
43a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param url The full url to the content that should be downloaded
44a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param userAgent the user agent to be used for the download.
45a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param contentDisposition Content-disposition http header, if
46a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     *                           present.
47a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param mimetype The mimetype of the content reported by the server
48a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     * @param contentLength The file size reported by the server
49a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun     */
50a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    @Override
51a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    public void onDownloadStart(String url, String userAgent,
52a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun            String contentDisposition, String mimetype, long contentLength) {
53a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun
54a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun        onDownloadStart(url, userAgent, contentDisposition, mimetype, null,
55a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun                      contentLength);
56a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun    }
57a36dcfdfe0e93cf18ae2c98f92625a593d624bb7Selim Gurun}
58