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