1/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.browser;
18
19import android.app.Activity;
20import android.content.Context;
21import android.graphics.Bitmap;
22import android.net.Uri;
23import android.net.http.SslError;
24import android.os.Message;
25import android.util.Log;
26import android.view.KeyEvent;
27import android.view.View;
28import android.webkit.HttpAuthHandler;
29import android.webkit.SslErrorHandler;
30import android.webkit.ValueCallback;
31import android.webkit.WebChromeClient.CustomViewCallback;
32import android.webkit.WebChromeClient.FileChooserParams;
33import android.webkit.WebView;
34
35public class PreloadController implements WebViewController {
36
37    private static final boolean LOGD_ENABLED = false;
38    private static final String LOGTAG = "PreloadController";
39
40    private Context mContext;
41
42    public PreloadController(Context ctx) {
43        mContext = ctx.getApplicationContext();
44
45    }
46
47    @Override
48    public Context getContext() {
49        return mContext;
50    }
51
52    @Override
53    public Activity getActivity() {
54        if (LOGD_ENABLED) Log.d(LOGTAG, "getActivity()");
55        return null;
56    }
57
58    @Override
59    public TabControl getTabControl() {
60        if (LOGD_ENABLED) Log.d(LOGTAG, "getTabControl()");
61        return null;
62    }
63
64    @Override
65    public WebViewFactory getWebViewFactory() {
66        if (LOGD_ENABLED) Log.d(LOGTAG, "getWebViewFactory()");
67        return null;
68    }
69
70    @Override
71    public void onSetWebView(Tab tab, WebView view) {
72        if (LOGD_ENABLED) Log.d(LOGTAG, "onSetWebView()");
73    }
74
75    @Override
76    public void createSubWindow(Tab tab) {
77        if (LOGD_ENABLED) Log.d(LOGTAG, "createSubWindow()");
78    }
79
80    @Override
81    public void onPageStarted(Tab tab, WebView view, Bitmap favicon) {
82        if (LOGD_ENABLED) Log.d(LOGTAG, "onPageStarted()");
83        if (view != null) {
84            // Clear history of all previously visited pages. When the
85            // user visits a preloaded tab, the only item in the history
86            // list should the currently viewed page.
87            view.clearHistory();
88        }
89    }
90
91    @Override
92    public void onPageFinished(Tab tab) {
93        if (LOGD_ENABLED) Log.d(LOGTAG, "onPageFinished()");
94        if (tab != null) {
95            final WebView view = tab.getWebView();
96            if (view != null) {
97                // Clear history of all previously visited pages. When the
98                // user visits a preloaded tab.
99                view.clearHistory();
100            }
101        }
102    }
103
104    @Override
105    public void onProgressChanged(Tab tab) {
106        if (LOGD_ENABLED) Log.d(LOGTAG, "onProgressChanged()");
107    }
108
109    @Override
110    public void onReceivedTitle(Tab tab, String title) {
111        if (LOGD_ENABLED) Log.d(LOGTAG, "onReceivedTitle()");
112    }
113
114    @Override
115    public void onFavicon(Tab tab, WebView view, Bitmap icon) {
116        if (LOGD_ENABLED) Log.d(LOGTAG, "onFavicon()");
117    }
118
119    @Override
120    public boolean shouldOverrideUrlLoading(Tab tab, WebView view, String url) {
121        if (LOGD_ENABLED) Log.d(LOGTAG, "shouldOverrideUrlLoading()");
122        return false;
123    }
124
125    @Override
126    public boolean shouldOverrideKeyEvent(KeyEvent event) {
127        if (LOGD_ENABLED) Log.d(LOGTAG, "shouldOverrideKeyEvent()");
128        return false;
129    }
130
131    @Override
132    public boolean onUnhandledKeyEvent(KeyEvent event) {
133        if (LOGD_ENABLED) Log.d(LOGTAG, "onUnhandledKeyEvent()");
134        return false;
135    }
136
137    @Override
138    public void doUpdateVisitedHistory(Tab tab, boolean isReload) {
139        if (LOGD_ENABLED) Log.d(LOGTAG, "doUpdateVisitedHistory()");
140    }
141
142    @Override
143    public void getVisitedHistory(ValueCallback<String[]> callback) {
144        if (LOGD_ENABLED) Log.d(LOGTAG, "getVisitedHistory()");
145    }
146
147    @Override
148    public void onReceivedHttpAuthRequest(Tab tab, WebView view,
149                                    HttpAuthHandler handler, String host,
150                                    String realm) {
151        if (LOGD_ENABLED) Log.d(LOGTAG, "onReceivedHttpAuthRequest()");
152    }
153
154    @Override
155    public void onDownloadStart(Tab tab, String url, String useragent,
156                                    String contentDisposition, String mimeType,
157                                    String referer, long contentLength) {
158        if (LOGD_ENABLED) Log.d(LOGTAG, "onDownloadStart()");
159    }
160
161    @Override
162    public void showCustomView(Tab tab, View view, int requestedOrientation,
163                                    CustomViewCallback callback) {
164        if (LOGD_ENABLED) Log.d(LOGTAG, "showCustomView()");
165    }
166
167    @Override
168    public void hideCustomView() {
169        if (LOGD_ENABLED) Log.d(LOGTAG, "hideCustomView()");
170    }
171
172    @Override
173    public Bitmap getDefaultVideoPoster() {
174        if (LOGD_ENABLED) Log.d(LOGTAG, "getDefaultVideoPoster()");
175        return null;
176    }
177
178    @Override
179    public View getVideoLoadingProgressView() {
180        if (LOGD_ENABLED) Log.d(LOGTAG, "getVideoLoadingProgressView()");
181        return null;
182    }
183
184    @Override
185    public void showSslCertificateOnError(WebView view,
186                                    SslErrorHandler handler, SslError error) {
187        if (LOGD_ENABLED) Log.d(LOGTAG, "showSslCertificateOnError()");
188    }
189
190    @Override
191    public void onUserCanceledSsl(Tab tab) {
192        if (LOGD_ENABLED) Log.d(LOGTAG, "onUserCanceledSsl()");
193    }
194
195    @Override
196    public boolean shouldShowErrorConsole() {
197        if (LOGD_ENABLED) Log.d(LOGTAG, "shouldShowErrorConsole()");
198        return false;
199    }
200
201    @Override
202    public void onUpdatedSecurityState(Tab tab) {
203        if (LOGD_ENABLED) Log.d(LOGTAG, "onUpdatedSecurityState()");
204    }
205
206    @Override
207    public void showFileChooser(ValueCallback<Uri[]> callback, FileChooserParams params) {
208        if (LOGD_ENABLED) Log.d(LOGTAG, "showFileChooser()");
209    }
210
211    @Override
212    public void endActionMode() {
213        if (LOGD_ENABLED) Log.d(LOGTAG, "endActionMode()");
214    }
215
216    @Override
217    public void attachSubWindow(Tab tab) {
218        if (LOGD_ENABLED) Log.d(LOGTAG, "attachSubWindow()");
219    }
220
221    @Override
222    public void dismissSubWindow(Tab tab) {
223        if (LOGD_ENABLED) Log.d(LOGTAG, "dismissSubWindow()");
224    }
225
226    @Override
227    public Tab openTab(String url, boolean incognito, boolean setActive, boolean useCurrent) {
228        if (LOGD_ENABLED) Log.d(LOGTAG, "openTab()");
229        return null;
230    }
231
232    @Override
233    public Tab openTab(String url, Tab parent, boolean setActive, boolean useCurrent) {
234        if (LOGD_ENABLED) Log.d(LOGTAG, "openTab()");
235        return null;
236    }
237
238    @Override
239    public boolean switchToTab(Tab tab) {
240        if (LOGD_ENABLED) Log.d(LOGTAG, "switchToTab()");
241        return false;
242    }
243
244    @Override
245    public void closeTab(Tab tab) {
246        if (LOGD_ENABLED) Log.d(LOGTAG, "closeTab()");
247    }
248
249    @Override
250    public void bookmarkedStatusHasChanged(Tab tab) {
251        if (LOGD_ENABLED) Log.d(LOGTAG, "bookmarkedStatusHasChanged()");
252    }
253
254    @Override
255    public void showAutoLogin(Tab tab) {
256        if (LOGD_ENABLED) Log.d(LOGTAG, "showAutoLogin()");
257    }
258
259    @Override
260    public void hideAutoLogin(Tab tab) {
261        if (LOGD_ENABLED) Log.d(LOGTAG, "hideAutoLogin()");
262    }
263
264    @Override
265    public boolean shouldCaptureThumbnails() {
266        return false;
267    }
268
269}
270