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
9611d1978d8d16004598347abc93918b54a5ef760bMichael Kolb    public void showVoiceTitleBar(String title, List<String> results);
978233facddcc51865d612a919d450db6954aa48e3Michael Kolb
988233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void revertVoiceTitleBar(Tab tab);
998233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1001acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb    public boolean onPrepareOptionsMenu(Menu menu);
1011acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb
1027bdee0b303d8969aace4d3e43be5bb9f16e276bfMichael Kolb    public void updateMenuState(Tab tab, Menu menu);
1037bdee0b303d8969aace4d3e43be5bb9f16e276bfMichael Kolb
1048233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onOptionsMenuOpened();
1058233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1068233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onExtendedMenuOpened();
1078233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1083ca12750f9b6231b00a1856dcb25c2d2e07e8784Michael Kolb    public boolean onOptionsItemSelected(MenuItem item);
1093ca12750f9b6231b00a1856dcb25c2d2e07e8784Michael Kolb
1108233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onOptionsMenuClosed(boolean inLoad);
1118233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1128233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onExtendedMenuClosed(boolean inLoad);
1138233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1148233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onContextMenuCreated(Menu menu);
1158233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1168233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onContextMenuClosed(Menu menu, boolean inLoad);
1178233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1188233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onActionModeStarted(ActionMode mode);
1198233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1208233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onActionModeFinished(boolean inLoad);
1218233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1228233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void setShouldShowErrorConsole(Tab tab, boolean show);
1238233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1248233facddcc51865d612a919d450db6954aa48e3Michael Kolb    // returns if the web page is clear of any overlays (not including sub windows)
1253ba455394dd3413b6246f00d2bf2083547862735John Reck    public boolean isWebShowing();
1263ba455394dd3413b6246f00d2bf2083547862735John Reck
1273ba455394dd3413b6246f00d2bf2083547862735John Reck    public void showWeb(boolean animate);
1288233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1298233facddcc51865d612a919d450db6954aa48e3Michael Kolb    Bitmap getDefaultVideoPoster();
1308233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1318233facddcc51865d612a919d450db6954aa48e3Michael Kolb    View getVideoLoadingProgressView();
1328233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1334cd97793901e8f5681cf642d0b2684697964a37aLeon Scroggins    void bookmarkedStatusHasChanged(Tab tab);
134843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb
135843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb    void showMaxTabsWarning();
136843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb
137dc2ee1bfb50b7bec0cf3215e3d298b246dc71101Michael Kolb    void editUrl(boolean clearInput);
138dc2ee1bfb50b7bec0cf3215e3d298b246dc71101Michael Kolb
13942c0c063206ed37ab63b887348369650b51942e9Michael Kolb    boolean isEditingUrl();
14042c0c063206ed37ab63b887348369650b51942e9Michael Kolb
141a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb    boolean dispatchKey(int code, KeyEvent event);
142a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb
1439206677e461328f15854c5fcb1366d0e261534c6Patrick Scott    void showAutoLogin(Tab tab);
1449206677e461328f15854c5fcb1366d0e261534c6Patrick Scott
1459206677e461328f15854c5fcb1366d0e261534c6Patrick Scott    void hideAutoLogin(Tab tab);
146c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb
147c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb    void setFullscreen(boolean enabled);
1480241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb
1490241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb    void setUseQuickControls(boolean enabled);
1500241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb
1511cf4b79a0020bc18c83ca8bde0e318ecd5252bc2John Reck    public boolean shouldCaptureThumbnails();
1521cf4b79a0020bc18c83ca8bde0e318ecd5252bc2John Reck
1538233facddcc51865d612a919d450db6954aa48e3Michael Kolb}
154