UI.java revision 0241e7556501caae1f57d2bdf3677d7e4a619eb0
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;
258233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.view.View;
268233facddcc51865d612a919d450db6954aa48e3Michael Kolbimport android.webkit.WebChromeClient.CustomViewCallback;
271514bb7ed5656316a8dac966cee21653f3c59affMichael Kolbimport android.webkit.WebView;
288233facddcc51865d612a919d450db6954aa48e3Michael Kolb
291bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolbimport java.util.List;
301bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb
318233facddcc51865d612a919d450db6954aa48e3Michael Kolb/**
328233facddcc51865d612a919d450db6954aa48e3Michael Kolb * UI interface definitions
338233facddcc51865d612a919d450db6954aa48e3Michael Kolb */
346670653d355fea0ae20dc51f6c693f994c4cbb54Michael Kolbpublic interface UI {
358233facddcc51865d612a919d450db6954aa48e3Michael Kolb
362bc8042224be51966d748b870768ec1b376a1621John Reck    public static enum ComboViews {
372bc8042224be51966d748b870768ec1b376a1621John Reck        History,
382bc8042224be51966d748b870768ec1b376a1621John Reck        Bookmarks,
392bc8042224be51966d748b870768ec1b376a1621John Reck        Snapshots,
402bc8042224be51966d748b870768ec1b376a1621John Reck    }
412bc8042224be51966d748b870768ec1b376a1621John Reck
428233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onPause();
438233facddcc51865d612a919d450db6954aa48e3Michael Kolb
448233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onResume();
458233facddcc51865d612a919d450db6954aa48e3Michael Kolb
468233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onDestroy();
478233facddcc51865d612a919d450db6954aa48e3Michael Kolb
488233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onConfigurationChanged(Configuration config);
498233facddcc51865d612a919d450db6954aa48e3Michael Kolb
508233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public boolean onBackKey();
518233facddcc51865d612a919d450db6954aa48e3Michael Kolb
522814a362c21ac219410d9b54e1bd3e8152b845c7Michael Kolb    public boolean onMenuKey();
532814a362c21ac219410d9b54e1bd3e8152b845c7Michael Kolb
541bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb    public boolean needsRestoreAllTabs();
551bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb
568233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void addTab(Tab tab);
578233facddcc51865d612a919d450db6954aa48e3Michael Kolb
588233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void removeTab(Tab tab);
598233facddcc51865d612a919d450db6954aa48e3Michael Kolb
608233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void setActiveTab(Tab tab);
618233facddcc51865d612a919d450db6954aa48e3Michael Kolb
621bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb    public void updateTabs(List<Tab> tabs);
631bf231334fd4bda8dbde5b9a0345c756a213b3a2Michael Kolb
648233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void detachTab(Tab tab);
658233facddcc51865d612a919d450db6954aa48e3Michael Kolb
668233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void attachTab(Tab tab);
678233facddcc51865d612a919d450db6954aa48e3Michael Kolb
68a713ec8cc9da6c0c8078cd297c6240eb8bf01bbbMichael Kolb    public void onSetWebView(Tab tab, WebView view);
69a713ec8cc9da6c0c8078cd297c6240eb8bf01bbbMichael Kolb
701514bb7ed5656316a8dac966cee21653f3c59affMichael Kolb    public void createSubWindow(Tab tab, WebView subWebView);
711514bb7ed5656316a8dac966cee21653f3c59affMichael Kolb
728233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void attachSubWindow(View subContainer);
738233facddcc51865d612a919d450db6954aa48e3Michael Kolb
748233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void removeSubWindow(View subContainer);
758233facddcc51865d612a919d450db6954aa48e3Michael Kolb
7630c714c853a4239e72ab1e238ce2a92472d06ab0John Reck    public void onTabDataChanged(Tab tab);
778233facddcc51865d612a919d450db6954aa48e3Michael Kolb
788233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onPageStopped(Tab tab);
798233facddcc51865d612a919d450db6954aa48e3Michael Kolb
8030c714c853a4239e72ab1e238ce2a92472d06ab0John Reck    public void onProgressChanged(Tab tab);
818233facddcc51865d612a919d450db6954aa48e3Michael Kolb
828233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void showActiveTabsPage();
838233facddcc51865d612a919d450db6954aa48e3Michael Kolb
848233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void removeActiveTabsPage();
858233facddcc51865d612a919d450db6954aa48e3Michael Kolb
862bc8042224be51966d748b870768ec1b376a1621John Reck    public void showComboView(ComboViews startingView, Bundle extra);
878233facddcc51865d612a919d450db6954aa48e3Michael Kolb
888233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void hideComboView();
898233facddcc51865d612a919d450db6954aa48e3Michael Kolb
902d4f1e2553dee6bce5a12162ff6d4459babe2512Derek Sollenberger    public void showCustomView(View view, int requestedOrientation,
912d4f1e2553dee6bce5a12162ff6d4459babe2512Derek Sollenberger            CustomViewCallback callback);
928233facddcc51865d612a919d450db6954aa48e3Michael Kolb
938233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onHideCustomView();
948233facddcc51865d612a919d450db6954aa48e3Michael Kolb
958233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public boolean isCustomViewShowing();
968233facddcc51865d612a919d450db6954aa48e3Michael Kolb
9711d1978d8d16004598347abc93918b54a5ef760bMichael Kolb    public void showVoiceTitleBar(String title, List<String> results);
988233facddcc51865d612a919d450db6954aa48e3Michael Kolb
998233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void revertVoiceTitleBar(Tab tab);
1008233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1011acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb    public boolean onPrepareOptionsMenu(Menu menu);
1021acef69ffc079d1bc029ff7eb1f5043f7efd7f36Michael Kolb
1038233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onOptionsMenuOpened();
1048233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1058233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onExtendedMenuOpened();
1068233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1078233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onOptionsMenuClosed(boolean inLoad);
1088233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1098233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onExtendedMenuClosed(boolean inLoad);
1108233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1118233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onContextMenuCreated(Menu menu);
1128233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1138233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onContextMenuClosed(Menu menu, boolean inLoad);
1148233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1158233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onActionModeStarted(ActionMode mode);
1168233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1178233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void onActionModeFinished(boolean inLoad);
1188233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1198233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public void setShouldShowErrorConsole(Tab tab, boolean show);
1208233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1218233facddcc51865d612a919d450db6954aa48e3Michael Kolb    // returns if the web page is clear of any overlays (not including sub windows)
1228233facddcc51865d612a919d450db6954aa48e3Michael Kolb    public boolean showsWeb();
1238233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1248233facddcc51865d612a919d450db6954aa48e3Michael Kolb    Bitmap getDefaultVideoPoster();
1258233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1268233facddcc51865d612a919d450db6954aa48e3Michael Kolb    View getVideoLoadingProgressView();
1278233facddcc51865d612a919d450db6954aa48e3Michael Kolb
1284cd97793901e8f5681cf642d0b2684697964a37aLeon Scroggins    void bookmarkedStatusHasChanged(Tab tab);
129843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb
130843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb    void showMaxTabsWarning();
131843510fb4f36a9a834c69d8773156db20ca3d740Michael Kolb
132dc2ee1bfb50b7bec0cf3215e3d298b246dc71101Michael Kolb    void editUrl(boolean clearInput);
133dc2ee1bfb50b7bec0cf3215e3d298b246dc71101Michael Kolb
134a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb    boolean dispatchKey(int code, KeyEvent event);
135a418306e08e008da99cef929c48e05d2a101ceafMichael Kolb
1365119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath    public static interface DropdownChangeListener {
1375119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath        void onNewDropdownDimensions(int height);
1385119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath    }
1395119edd5744cfc6d3a8ed480a8853586c737bed4Narayan Kamath    void registerDropdownChangeListener(DropdownChangeListener d);
1409206677e461328f15854c5fcb1366d0e261534c6Patrick Scott
1419206677e461328f15854c5fcb1366d0e261534c6Patrick Scott    void showAutoLogin(Tab tab);
1429206677e461328f15854c5fcb1366d0e261534c6Patrick Scott
1439206677e461328f15854c5fcb1366d0e261534c6Patrick Scott    void hideAutoLogin(Tab tab);
144c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb
145c38c604eca3bd0620cd9284187aace78455e723dMichael Kolb    void setFullscreen(boolean enabled);
1460241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb
1470241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb    void setUseQuickControls(boolean enabled);
1480241e7556501caae1f57d2bdf3677d7e4a619eb0Michael Kolb
1498233facddcc51865d612a919d450db6954aa48e3Michael Kolb}
150