summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/PieControl.java
diff options
context:
space:
mode:
authorMichael Kolb <kolby@google.com>2010-12-15 11:52:57 -0800
committerMichael Kolb <kolby@google.com>2010-12-15 11:53:02 -0800
commit376b54116e38b3b94c4d64663d1bff38352b0e59 (patch)
tree97d9f406203b494b7dc529d17d8728858942d3ad /src/com/android/browser/PieControl.java
parent439c9a58765aa6aab95d55422ee61ea8360e912d (diff)
downloadpackages_apps_browser-376b54116e38b3b94c4d64663d1bff38352b0e59.zip
packages_apps_browser-376b54116e38b3b94c4d64663d1bff38352b0e59.tar.gz
packages_apps_browser-376b54116e38b3b94c4d64663d1bff38352b0e59.tar.bz2
Add quick controls
Bug: http://b/issue?id=3277888 Added Quick Controls Lab setting Implemented Quick Controls UI Change-Id: I72011daf9140aa5d15c8b785126867c10bbc5501
Diffstat (limited to 'src/com/android/browser/PieControl.java')
-rw-r--r--src/com/android/browser/PieControl.java151
1 files changed, 151 insertions, 0 deletions
diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
new file mode 100644
index 0000000..210e9ea
--- /dev/null
+++ b/src/com/android/browser/PieControl.java
@@ -0,0 +1,151 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.browser;
+
+import com.android.browser.view.PieMenu;
+
+import android.app.Activity;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.ViewGroup.LayoutParams;
+import android.webkit.WebView;
+import android.widget.FrameLayout;
+import android.widget.ImageView;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * controller for Quick Controls pie menu
+ */
+public class PieControl implements OnClickListener, PieMenu.PieController {
+
+ private Activity mActivity;
+ private UiController mUiController;
+ private XLargeUi mUi;
+ private PieMenu mPie;
+ private ImageView mBack;
+ private ImageView mForward;
+ private ImageView mRefresh;
+ private ImageView mUrl;
+ private ImageView mOptions;
+ private ImageView mBookmarks;
+ private ImageView mNewTab;
+ private ImageView mClose;
+
+ private Map<View,Tab> mTabItems;
+
+ boolean mNewTabMode = true;
+
+ public PieControl(Activity activity, UiController controller, XLargeUi ui) {
+ mActivity = activity;
+ mUiController = controller;
+ mUi = ui;
+ mTabItems = new HashMap<View, Tab>();
+ }
+
+ protected void attachToContainer(FrameLayout container) {
+ if (mPie == null) {
+ mPie = new PieMenu(mActivity);
+ LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,
+ LayoutParams.MATCH_PARENT);
+ mPie.setLayoutParams(lp);
+ mForward = makeMenuView(R.drawable.ic_pie_forward);
+ mPie.addItem(mForward);
+ mRefresh = makeMenuView(R.drawable.ic_pie_refresh);
+ mPie.addItem(mRefresh);
+ mBack = makeMenuView(R.drawable.ic_pie_back);
+ mPie.addItem(mBack);
+ mUrl = makeMenuView(R.drawable.ic_pie_search);
+ mPie.addItem(mUrl);
+ mBookmarks = makeMenuView(R.drawable.ic_pie_bookmarks);
+ mPie.addItem(mBookmarks);
+ mNewTab = makeMenuView(R.drawable.ic_pie_new_tab);
+ mPie.addItem(mNewTab);
+ mOptions = makeMenuView(R.drawable.ic_pie_more);
+ mPie.addItem(mOptions);
+ setClickListener(mBack, mForward, mRefresh, mUrl, mOptions,
+ mBookmarks, mNewTab);
+ mPie.setController(this);
+ }
+ container.addView(mPie);
+ }
+
+ protected void removeFromContainer(FrameLayout container) {
+ container.removeView(mPie);
+ }
+
+ private ImageView makeMenuView(int image) {
+ ImageView item = new ImageView(mActivity);
+ item.setImageResource(image);
+ LayoutParams lp = new LayoutParams(48, 48);
+ item.setLayoutParams(lp);
+ return item;
+ }
+
+ private void setClickListener(View... views) {
+ for (View view : views) {
+ view.setOnClickListener(this);
+ }
+ }
+
+ protected void forceToTop(FrameLayout container) {
+ if (mPie.getParent() != null) {
+ container.removeView(mPie);
+ container.addView(mPie);
+ }
+ }
+
+ @Override
+ public void onClick(View v) {
+ mPie.show(false);
+ Tab tab = mUiController.getTabControl().getCurrentTab();
+ WebView web = tab.getWebView();
+ if (mBack == v) {
+ web.goBack();
+ } else if (mForward == v) {
+ web.goForward();
+ } else if (mRefresh == v) {
+ if (tab.inPageLoad()) {
+ web.stopLoading();
+ } else {
+ web.reload();
+ }
+ } else if (mUrl == v) {
+ mUi.showFakeTitleBarAndEdit();
+ } else if (mOptions == v) {
+ mActivity.openOptionsMenu();
+ } else if (mBookmarks == v) {
+ mUiController.bookmarksOrHistoryPicker(false);
+ } else if (mNewTab == v) {
+ mUiController.openTabToHomePage();
+ } else if (mClose == v) {
+ mUiController.closeCurrentTab();
+ } else {
+ Tab ntab = mTabItems.get(v);
+ if (ntab != null) {
+ mUiController.switchToTab(mUiController.getTabControl().getTabIndex(ntab));
+ }
+ }
+ }
+
+ @Override
+ public boolean onOpen() {
+ return true;
+ }
+
+}