18233facddcc51865d612a919d450db6954aa48e3Michael Kolb/* 28233facddcc51865d612a919d450db6954aa48e3Michael Kolb * Copyright (C) 2010 The Android Open Source Project 38233facddcc51865d612a919d450db6954aa48e3Michael Kolb * 48233facddcc51865d612a919d450db6954aa48e3Michael Kolb * Licensed under the Apache License, Version 2.0 (the "License"); 58233facddcc51865d612a919d450db6954aa48e3Michael Kolb * you may not use this file except in compliance with the License. 68233facddcc51865d612a919d450db6954aa48e3Michael Kolb * You may obtain a copy of the License at 78233facddcc51865d612a919d450db6954aa48e3Michael Kolb * 88233facddcc51865d612a919d450db6954aa48e3Michael Kolb * http://www.apache.org/licenses/LICENSE-2.0 98233facddcc51865d612a919d450db6954aa48e3Michael Kolb * 108233facddcc51865d612a919d450db6954aa48e3Michael Kolb * Unless required by applicable law or agreed to in writing, software 118233facddcc51865d612a919d450db6954aa48e3Michael Kolb * distributed under the License is distributed on an "AS IS" BASIS, 128233facddcc51865d612a919d450db6954aa48e3Michael Kolb * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 138233facddcc51865d612a919d450db6954aa48e3Michael Kolb * See the License for the specific language governing permissions and 148233facddcc51865d612a919d450db6954aa48e3Michael Kolb * limitations under the License. 158233facddcc51865d612a919d450db6954aa48e3Michael Kolb */ 168233facddcc51865d612a919d450db6954aa48e3Michael Kolb 178233facddcc51865d612a919d450db6954aa48e3Michael Kolbpackage com.android.browser; 188233facddcc51865d612a919d450db6954aa48e3Michael Kolb 198233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.content.res.Configuration; 208233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.graphics.Bitmap; 218233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.os.Bundle; 228233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.view.ActionMode; 23a418306e08e008da99cef929c48e05d2a101ceafMichael Kolbimport android.view.KeyEvent; 248233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.view.Menu; 253ca12750f9b6231b00a1856dcb25c2d2e07e8784Michael Kolbimport android.view.MenuItem; 268233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.view.View; 278233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.webkit.WebChromeClient.CustomViewCallback; 281514bb7ed5656316a8dac966cee21653f3c59affMichael Kolbimport android.webkit.WebView; 298233facddcc51865d612a919d450db6954aa48e3Michael Kolb 301bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolbimport java.util.List; 311bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb 328233facddcc51865d612a919d450db6954aa48e3Michael Kolb/** 338233facddcc51865d612a919d450db6954aa48e3Michael Kolb * UI interface definitions 348233facddcc51865d612a919d450db6954aa48e3Michael Kolb */ 356670653d355fea0ae20dc51f6c693f994c4cbb54Michael Kolbpublic interface UI { 368233facddcc51865d612a919d450db6954aa48e3Michael Kolb 372bc8042224be51966d748b870768ec1b376a1621John Reck public static enum ComboViews { 382bc8042224be51966d748b870768ec1b376a1621John Reck History, 392bc8042224be51966d748b870768ec1b376a1621John Reck Bookmarks, 402bc8042224be51966d748b870768ec1b376a1621John Reck Snapshots, 412bc8042224be51966d748b870768ec1b376a1621John Reck } 422bc8042224be51966d748b870768ec1b376a1621John Reck 438233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onPause(); 448233facddcc51865d612a919d450db6954aa48e3Michael Kolb 458233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onResume(); 468233facddcc51865d612a919d450db6954aa48e3Michael Kolb 478233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onDestroy(); 488233facddcc51865d612a919d450db6954aa48e3Michael Kolb 498233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onConfigurationChanged(Configuration config); 508233facddcc51865d612a919d450db6954aa48e3Michael Kolb 518233facddcc51865d612a919d450db6954aa48e3Michael Kolb public boolean onBackKey(); 528233facddcc51865d612a919d450db6954aa48e3Michael Kolb 532814a362c21ac219410d9b54e1bd3e8152b845c7Michael Kolb public boolean onMenuKey(); 542814a362c21ac219410d9b54e1bd3e8152b845c7Michael Kolb 551bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb public boolean needsRestoreAllTabs(); 561bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb 578233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void addTab(Tab tab); 588233facddcc51865d612a919d450db6954aa48e3Michael Kolb 598233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void removeTab(Tab tab); 608233facddcc51865d612a919d450db6954aa48e3Michael Kolb 618233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void setActiveTab(Tab tab); 628233facddcc51865d612a919d450db6954aa48e3Michael Kolb 631bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb public void updateTabs(List<Tab> tabs); 641bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb 658233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void detachTab(Tab tab); 668233facddcc51865d612a919d450db6954aa48e3Michael Kolb 678233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void attachTab(Tab tab); 688233facddcc51865d612a919d450db6954aa48e3Michael Kolb 69a713ec8cc9da6c0c8078cd297c6240eb8bf01bbbMichael Kolb public void onSetWebView(Tab tab, WebView view); 70a713ec8cc9da6c0c8078cd297c6240eb8bf01bbbMichael Kolb 711514bb7ed5656316a8dac966cee21653f3c59affMichael Kolb public void createSubWindow(Tab tab, WebView subWebView); 721514bb7ed5656316a8dac966cee21653f3c59affMichael Kolb 738233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void attachSubWindow(View subContainer); 748233facddcc51865d612a919d450db6954aa48e3Michael Kolb 758233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void removeSubWindow(View subContainer); 768233facddcc51865d612a919d450db6954aa48e3Michael Kolb 7730c714c853a4239e72ab1e238ce2a92472d06ab0John Reck public void onTabDataChanged(Tab tab); 788233facddcc51865d612a919d450db6954aa48e3Michael Kolb 798233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onPageStopped(Tab tab); 808233facddcc51865d612a919d450db6954aa48e3Michael Kolb 8130c714c853a4239e72ab1e238ce2a92472d06ab0John Reck public void onProgressChanged(Tab tab); 828233facddcc51865d612a919d450db6954aa48e3Michael Kolb 838233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void showActiveTabsPage(); 848233facddcc51865d612a919d450db6954aa48e3Michael Kolb 858233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void removeActiveTabsPage(); 868233facddcc51865d612a919d450db6954aa48e3Michael Kolb 872bc8042224be51966d748b870768ec1b376a1621John Reck public void showComboView(ComboViews startingView, Bundle extra); 888233facddcc51865d612a919d450db6954aa48e3Michael Kolb 892d4f1e2553dee6bce5a12162ff6d4459babe2512Derek Sollenberger public void showCustomView(View view, int requestedOrientation, 902d4f1e2553dee6bce5a12162ff6d4459babe2512Derek Sollenberger CustomViewCallback callback); 918233facddcc51865d612a919d450db6954aa48e3Michael Kolb 928233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onHideCustomView(); 938233facddcc51865d612a919d450db6954aa48e3Michael Kolb 948233facddcc51865d612a919d450db6954aa48e3Michael Kolb public boolean isCustomViewShowing(); 958233facddcc51865d612a919d450db6954aa48e3Michael Kolb 961acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb public boolean onPrepareOptionsMenu(Menu menu); 971acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb 987bdee0b303d8969aace4d3e43be5bb9f16e276bfMichael Kolb public void updateMenuState(Tab tab, Menu menu); 997bdee0b303d8969aace4d3e43be5bb9f16e276bfMichael Kolb 1008233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onOptionsMenuOpened(); 1018233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1028233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onExtendedMenuOpened(); 1038233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1043ca12750f9b6231b00a1856dcb25c2d2e07e8784Michael Kolb public boolean onOptionsItemSelected(MenuItem item); 1053ca12750f9b6231b00a1856dcb25c2d2e07e8784Michael Kolb 1068233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onOptionsMenuClosed(boolean inLoad); 1078233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1088233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onExtendedMenuClosed(boolean inLoad); 1098233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1108233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onContextMenuCreated(Menu menu); 1118233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1128233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onContextMenuClosed(Menu menu, boolean inLoad); 1138233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1148233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onActionModeStarted(ActionMode mode); 1158233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1168233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void onActionModeFinished(boolean inLoad); 1178233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1188233facddcc51865d612a919d450db6954aa48e3Michael Kolb public void setShouldShowErrorConsole(Tab tab, boolean show); 1198233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1208233facddcc51865d612a919d450db6954aa48e3Michael Kolb // returns if the web page is clear of any overlays (not including sub windows) 1213ba455394dd3413b6246f00d2bf2083547862735John Reck public boolean isWebShowing(); 1223ba455394dd3413b6246f00d2bf2083547862735John Reck 1233ba455394dd3413b6246f00d2bf2083547862735John Reck public void showWeb(boolean animate); 1248233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1258233facddcc51865d612a919d450db6954aa48e3Michael Kolb Bitmap getDefaultVideoPoster(); 1268233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1278233facddcc51865d612a919d450db6954aa48e3Michael Kolb View getVideoLoadingProgressView(); 1288233facddcc51865d612a919d450db6954aa48e3Michael Kolb 1294cd97793901e8f5681cf642d0b2684697964a37aLeon Scroggins void bookmarkedStatusHasChanged(Tab tab); 130843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb 131843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb void showMaxTabsWarning(); 132843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb 1331f9b3565dbd1911dfe4d9bfd8b833a5ac5f2e0c4Michael Kolb void editUrl(boolean clearInput, boolean forceIME); 134dc2ee1bfb50b7bec0cf3215e3d298b246dc71101Michael Kolb 13542c0c063206ed37ab63b887348369650b51942e9Michael Kolb boolean isEditingUrl(); 13642c0c063206ed37ab63b887348369650b51942e9Michael Kolb 137a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb boolean dispatchKey(int code, KeyEvent event); 138a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb 1399206677e461328f15854c5fcb1366d0e261534c6Patrick Scott void showAutoLogin(Tab tab); 1409206677e461328f15854c5fcb1366d0e261534c6Patrick Scott 1419206677e461328f15854c5fcb1366d0e261534c6Patrick Scott void hideAutoLogin(Tab tab); 142c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb 143c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb void setFullscreen(boolean enabled); 1440241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb 1450241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb void setUseQuickControls(boolean enabled); 1460241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb 1471cf4b79a0020bc18c83ca8bde0e318ecd5252bc2John Reck public boolean shouldCaptureThumbnails(); 1481cf4b79a0020bc18c83ca8bde0e318ecd5252bc2John Reck 149bae0cb200f6ad93ce61c5781100f4b6ac0cb6649Michael Kolb boolean blockFocusAnimations(); 150bae0cb200f6ad93ce61c5781100f4b6ac0cb6649Michael Kolb 1510b12912da64ff5b2917d4f50eb91df2e76457d08Michael Kolb void onVoiceResult(String result); 1528233facddcc51865d612a919d450db6954aa48e3Michael Kolb} 153