Remove quick controls

Change-Id: I0fa64f0fcd800db0c8d5c91dcbbcc265f4d8eb48
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index 666b997..354e901 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -110,10 +110,8 @@
     private View mVideoProgressView;
 
     private boolean mActivityPaused;
-    protected boolean mUseQuickControls;
     protected TitleBar mTitleBar;
     private NavigationBarBase mNavigationBar;
-    protected PieControl mPieControl;
     private boolean mBlockFocusAnimations;
 
     public BaseUi(Activity browser, UiController controller) {
@@ -206,21 +204,6 @@
         return false;
     }
 
-    @Override
-    public void setUseQuickControls(boolean useQuickControls) {
-        mUseQuickControls = useQuickControls;
-        mTitleBar.setUseQuickControls(mUseQuickControls);
-        if (useQuickControls) {
-            mPieControl = new PieControl(mActivity, mUiController, this);
-            mPieControl.attachToContainer(mContentView);
-        } else {
-            if (mPieControl != null) {
-                mPieControl.removeFromContainer(mContentView);
-            }
-        }
-        updateUrlBarAutoShowManagerTarget();
-    }
-
     // Tab callbacks
     @Override
     public void onTabDataChanged(Tab tab) {
@@ -290,14 +273,8 @@
         attachTabToContentView(tab);
         if (web != null) {
             // Request focus on the top window.
-            if (mUseQuickControls) {
-                mPieControl.forceToTop(mContentView);
-                web.setTitleBar(null);
-                mTitleBar.hide();
-            } else {
-                web.setTitleBar(mTitleBar);
-                mTitleBar.onScrollChanged();
-            }
+            web.setTitleBar(mTitleBar);
+            mTitleBar.onScrollChanged();
             tabToWaitFor = mActiveTab;
         }
         mTitleBar.bringToFront();
@@ -367,10 +344,8 @@
 
     protected void updateUrlBarAutoShowManagerTarget() {
         WebView web = mActiveTab != null ? mActiveTab.getWebView() : null;
-        if (!mUseQuickControls && web instanceof BrowserWebView) {
+        if (web instanceof BrowserWebView) {
             mUrlBarAutoShowManager.setTarget((BrowserWebView) web);
-        } else {
-            mUrlBarAutoShowManager.setTarget(null);
         }
     }
 
@@ -828,8 +803,7 @@
                 mTitleBar.setEnabled(true);
             }
 
-            if (!mUseQuickControls)
-                mTitleBar.setTranslationY(topControlsOffsetYPix);
+            mTitleBar.setTranslationY(topControlsOffsetYPix);
         }
     }
 
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index c033647..0318f8f 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -427,10 +427,6 @@
             if (mController != null && mController.getUi() != null) {
                 mController.getUi().setFullscreen(useFullscreen());
             }
-        } else if (PREF_ENABLE_QUICK_CONTROLS.equals(key)) {
-            if (mController != null && mController.getUi() != null) {
-                mController.getUi().setUseQuickControls(sharedPreferences.getBoolean(key, false));
-            }
         } else if (PREF_LINK_PREFETCH.equals(key)) {
             updateConnectionType();
         }
@@ -958,10 +954,6 @@
     // getter/setters for lab_preferences.xml
     // -----------------------------
 
-    public boolean useQuickControls() {
-        return mPrefs.getBoolean(PREF_ENABLE_QUICK_CONTROLS, false);
-    }
-
     public boolean useMostVisitedHomepage() {
         return HomeProvider.MOST_VISITED.equals(getHomePage());
     }
diff --git a/src/com/android/browser/BrowserWebViewFactory.java b/src/com/android/browser/BrowserWebViewFactory.java
index 6e18dc1..48ad91c 100644
--- a/src/com/android/browser/BrowserWebViewFactory.java
+++ b/src/com/android/browser/BrowserWebViewFactory.java
@@ -68,8 +68,6 @@
         // settings
         final BrowserSettings s = BrowserSettings.getInstance();
         s.startManagingSettings(w.getSettings());
-        if (s.useQuickControls())
-            w.updateTopControls(true, false, false);
 
         //Enable remote debugging by default
         WebView.setWebContentsDebuggingEnabled(true);
diff --git a/src/com/android/browser/NavigationBarBase.java b/src/com/android/browser/NavigationBarBase.java
index 100e8d7..ec18786 100644
--- a/src/com/android/browser/NavigationBarBase.java
+++ b/src/com/android/browser/NavigationBarBase.java
@@ -372,9 +372,6 @@
     void startEditingUrl(boolean clearInput, boolean forceIME) {
         // editing takes preference of progress
         setVisibility(View.VISIBLE);
-        if (mTitleBar.useQuickControls()) {
-            mTitleBar.getProgressView().setVisibility(View.GONE);
-        }
         if (!mUrlInput.hasFocus()) {
             mUrlInput.requestFocus();
         }
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index ebe40ea..a965e0a 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -229,11 +229,7 @@
                 showNavButtons();
             }
             showHideStar(mUiController.getCurrentTab());
-            if (mTitleBar.useQuickControls()) {
-                mSearchButton.setVisibility(View.GONE);
-            } else {
-                mSearchButton.setVisibility(View.VISIBLE);
-            }
+            mSearchButton.setVisibility(View.VISIBLE);
             updateUrlIcon();
         }
         mUrlContainer.setBackgroundDrawable(focus
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 35e6ad3..d74e988 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -66,7 +66,6 @@
      */
     public PhoneUi(Activity browser, UiController controller) {
         super(browser, controller);
-        setUseQuickControls(BrowserSettings.getInstance().useQuickControls());
         mNavigationBar = (NavigationBarPhone) mTitleBar.getNavigationBar();
         mBrowser = browser;
     }
@@ -78,9 +77,6 @@
 
     @Override
     public void editUrl(boolean clearInput, boolean forceIME) {
-        if (mUseQuickControls) {
-            mTitleBar.setShowProgressOnly(false);
-        }
         //Do nothing while at Nav show screen.
         if (mShowNav) return;
         super.editUrl(clearInput, forceIME);
@@ -148,13 +144,8 @@
             return;
         }
         // Request focus on the top window.
-        if (mUseQuickControls) {
-            mPieControl.forceToTop(mContentView);
-            view.setTitleBar(null);
-            mTitleBar.setShowProgressOnly(true);
-        } else {
-            view.setTitleBar(mTitleBar);
-        }
+        view.setTitleBar(mTitleBar);
+
         // update nav bar state
         mNavigationBar.onStateChanged(StateListener.STATE_NORMAL);
         updateLockIconToLatest(tab);
@@ -184,12 +175,12 @@
             info.setVisible(false);
         }
         MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
-        if (newtab != null && !mUseQuickControls) {
+        if (newtab != null) {
             newtab.setVisible(false);
         }
         MenuItem incognito = menu.findItem(R.id.incognito_menu_id);
         if (incognito != null) {
-            incognito.setVisible(showingNavScreen() || mUseQuickControls);
+            incognito.setVisible(showingNavScreen());
         }
         MenuItem closeOthers = menu.findItem(R.id.close_other_tabs_id);
         if (closeOthers != null) {
@@ -244,9 +235,6 @@
     public void onActionModeFinished(boolean inLoad) {
         super.onActionModeFinished(inLoad);
         if (inLoad) {
-            if (mUseQuickControls) {
-                mTitleBar.setShowProgressOnly(true);
-            }
             showTitleBar();
         }
     }
diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
deleted file mode 100644
index 68f7983..0000000
--- a/src/com/android/browser/PieControl.java
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- * Copyright (C) 2011 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 android.app.Activity;
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.View.OnClickListener;
-import android.view.ViewGroup;
-import android.view.ViewGroup.LayoutParams;
-import org.codeaurora.swe.WebView;
-import android.widget.BaseAdapter;
-import android.widget.FrameLayout;
-import android.widget.ImageView;
-import android.widget.ImageView.ScaleType;
-import android.widget.TextView;
-
-import com.android.browser.R;
-import com.android.browser.UI.ComboViews;
-import com.android.browser.view.PieItem;
-import com.android.browser.view.PieMenu;
-import com.android.browser.view.PieStackView;
-import com.android.browser.view.PieMenu.PieView.OnLayoutListener;
-import com.android.browser.view.PieStackView.OnCurrentListener;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Controller for Quick Controls pie menu
- */
-public class PieControl implements PieMenu.PieController, OnClickListener {
-
-    protected Activity mActivity;
-    protected UiController mUiController;
-    protected PieMenu mPie;
-    protected int mItemSize;
-    protected TextView mTabsCount;
-    private BaseUi mUi;
-    private PieItem mBack;
-    private PieItem mForward;
-    private PieItem mRefresh;
-    private PieItem mUrl;
-    private PieItem mOptions;
-    private PieItem mBookmarks;
-    private PieItem mHistory;
-    private PieItem mAddBookmark;
-    private PieItem mNewTab;
-    private PieItem mIncognito;
-    private PieItem mClose;
-    private PieItem mShowTabs;
-    private PieItem mInfo;
-    private PieItem mFind;
-    private PieItem mShare;
-    private PieItem mRDS;
-    private TabAdapter mTabAdapter;
-
-    public PieControl(Activity activity, UiController controller, BaseUi ui) {
-        mActivity = activity;
-        mUiController = controller;
-        mItemSize = (int) activity.getResources().getDimension(R.dimen.qc_item_size);
-        mUi = ui;
-    }
-
-    public void stopEditingUrl() {
-        mUi.stopEditingUrl();
-    }
-
-    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);
-            populateMenu();
-            mPie.setController(this);
-        }
-        container.addView(mPie);
-    }
-
-    protected void removeFromContainer(FrameLayout container) {
-        container.removeView(mPie);
-    }
-
-    protected void forceToTop(FrameLayout container) {
-        if (mPie.getParent() != null) {
-            container.removeView(mPie);
-            container.addView(mPie);
-        }
-    }
-
-    protected void setClickListener(OnClickListener listener, PieItem... items) {
-        for (PieItem item : items) {
-            item.getView().setOnClickListener(listener);
-        }
-    }
-
-    @Override
-    public boolean onOpen() {
-        int n = mUiController.getTabControl().getTabCount();
-        mTabsCount.setText(Integer.toString(n));
-        Tab tab = mUiController.getCurrentTab();
-        if (tab != null) {
-            mForward.setEnabled(tab.canGoForward());
-        }
-        WebView view = mUiController.getCurrentWebView();
-        if (view != null) {
-            ImageView icon = (ImageView) mRDS.getView();
-            if (mUiController.getSettings().hasDesktopUseragent(view)) {
-                icon.setImageResource(R.drawable.ic_mobile);
-            } else {
-                icon.setImageResource(R.drawable.ic_desktop_holo_dark);
-            }
-        }
-        return true;
-    }
-
-    protected void populateMenu() {
-        mBack = makeItem(R.drawable.ic_back_holo_dark, 1);
-        mUrl = makeItem(R.drawable.ic_web_holo_dark, 1);
-        mBookmarks = makeItem(R.drawable.ic_bookmarks_holo_dark, 1);
-        mHistory = makeItem(R.drawable.ic_history_holo_dark, 1);
-        mAddBookmark = makeItem(R.drawable.ic_bookmark_on_holo_dark, 1);
-        mRefresh = makeItem(R.drawable.ic_refresh_holo_dark, 1);
-        mForward = makeItem(R.drawable.ic_forward_holo_dark, 1);
-        mNewTab = makeItem(R.drawable.ic_new_window_holo_dark, 1);
-        mIncognito = makeItem(R.drawable.ic_new_incognito_holo_dark, 1);
-        mClose = makeItem(R.drawable.ic_close_window_holo_dark, 1);
-        mInfo = makeItem(android.R.drawable.ic_menu_info_details, 1);
-        mFind = makeItem(R.drawable.ic_search_holo_dark, 1);
-        mShare = makeItem(R.drawable.ic_share_holo_dark, 1);
-        View tabs = makeTabsView();
-        mShowTabs = new PieItem(tabs, 1);
-        mOptions = makeItem(R.drawable.ic_settings_holo_dark, 1);
-        mRDS = makeItem(R.drawable.ic_desktop_holo_dark, 1);
-        mTabAdapter = new TabAdapter(mActivity, mUiController);
-        PieStackView stack = new PieStackView(mActivity);
-        stack.setLayoutListener(new OnLayoutListener() {
-            @Override
-            public void onLayout(int ax, int ay, boolean left) {
-                buildTabs();
-            }
-        });
-        stack.setOnCurrentListener(mTabAdapter);
-        stack.setAdapter(mTabAdapter);
-        mShowTabs.setPieView(stack);
-        setClickListener(this, mBack, mRefresh, mForward, mUrl, mFind, mInfo,
-                mShare, mBookmarks, mNewTab, mIncognito, mClose, mHistory,
-                mAddBookmark, mOptions, mRDS);
-        if (!BrowserActivity.isTablet(mActivity)) {
-            mShowTabs.getView().setOnClickListener(this);
-        }
-        // level 1
-        mPie.addItem(mOptions);
-        mOptions.addItem(mRDS);
-        mOptions.addItem(makeFiller());
-        mOptions.addItem(makeFiller());
-        mOptions.addItem(makeFiller());
-        mPie.addItem(mBack);
-        mBack.addItem(mRefresh);
-        mBack.addItem(mForward);
-        mBack.addItem(makeFiller());
-        mBack.addItem(makeFiller());
-        mPie.addItem(mUrl);
-        mUrl.addItem(mFind);
-        mUrl.addItem(mShare);
-        mUrl.addItem(makeFiller());
-        mUrl.addItem(makeFiller());
-        mPie.addItem(mShowTabs);
-        mShowTabs.addItem(mClose);
-        mShowTabs.addItem(mIncognito);
-        mShowTabs.addItem(mNewTab);
-        mShowTabs.addItem(makeFiller());
-        mPie.addItem(mBookmarks);
-        mBookmarks.addItem(makeFiller());
-        mBookmarks.addItem(makeFiller());
-        mBookmarks.addItem(mAddBookmark);
-        mBookmarks.addItem(mHistory);
-    }
-
-    @Override
-    public void onClick(View v) {
-        Tab tab = mUiController.getTabControl().getCurrentTab();
-        WebView web = tab.getWebView();
-        if (mBack.getView() == v) {
-            tab.goBack();
-        } else if (mForward.getView() == v) {
-            tab.goForward();
-        } else if (mRefresh.getView() == v) {
-            if (tab.inPageLoad()) {
-                web.stopLoading();
-            } else {
-                web.reload();
-            }
-        } else if (mUrl.getView() == v) {
-            mUi.editUrl(false, true);
-        } else if (mBookmarks.getView() == v) {
-            mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
-        } else if (mHistory.getView() == v) {
-            mUiController.bookmarksOrHistoryPicker(ComboViews.History);
-        } else if (mAddBookmark.getView() == v) {
-            mUiController.bookmarkCurrentPage();
-        } else if (mNewTab.getView() == v) {
-            mUiController.openTabToHomePage();
-            mUi.editUrl(false, true);
-        } else if (mIncognito.getView() == v) {
-            mUiController.openIncognitoTab();
-            mUi.editUrl(false, true);
-        } else if (mClose.getView() == v) {
-            mUiController.closeCurrentTab();
-        } else if (mOptions.getView() == v) {
-            mUiController.openPreferences();
-        } else if (mShare.getView() == v) {
-            mUiController.shareCurrentPage();
-        } else if (mInfo.getView() == v) {
-            mUiController.showPageInfo();
-        } else if (mFind.getView() == v) {
-            mUiController.findOnPage();
-        } else if (mRDS.getView() == v) {
-            mUiController.toggleUserAgent();
-        } else if (mShowTabs.getView() == v) {
-            ((PhoneUi) mUi).showNavScreen();
-        }
-    }
-
-    private void buildTabs() {
-        final List<Tab> tabs = mUiController.getTabs();
-        mUi.getActiveTab().capture();
-        mTabAdapter.setTabs(tabs);
-        PieStackView sym = (PieStackView) mShowTabs.getPieView();
-        sym.setCurrent(mUiController.getTabControl().getCurrentPosition());
-    }
-
-    protected PieItem makeItem(int image, int l) {
-        ImageView view = new ImageView(mActivity);
-        view.setImageResource(image);
-        view.setMinimumWidth(mItemSize);
-        view.setMinimumHeight(mItemSize);
-        view.setScaleType(ScaleType.CENTER);
-        LayoutParams lp = new LayoutParams(mItemSize, mItemSize);
-        view.setLayoutParams(lp);
-        return new PieItem(view, l);
-    }
-
-    protected PieItem makeFiller() {
-        return new PieItem(null, 1);
-    }
-
-    protected View makeTabsView() {
-        View v = mActivity.getLayoutInflater().inflate(R.layout.qc_tabs_view, null);
-        mTabsCount = (TextView) v.findViewById(R.id.label);
-        mTabsCount.setText("1");
-        ImageView image = (ImageView) v.findViewById(R.id.icon);
-        image.setImageResource(R.drawable.ic_windows_holo_dark);
-        image.setScaleType(ScaleType.CENTER);
-        LayoutParams lp = new LayoutParams(mItemSize, mItemSize);
-        v.setLayoutParams(lp);
-        return v;
-    }
-
-    static class TabAdapter extends BaseAdapter implements OnCurrentListener {
-
-        LayoutInflater mInflater;
-        UiController mUiController;
-        private List<Tab> mTabs;
-        private int mCurrent;
-
-        public TabAdapter(Context ctx, UiController ctl) {
-            mInflater = LayoutInflater.from(ctx);
-            mUiController = ctl;
-            mTabs = new ArrayList<Tab>();
-            mCurrent = -1;
-        }
-
-        public void setTabs(List<Tab> tabs) {
-            mTabs = tabs;
-            notifyDataSetChanged();
-        }
-
-        @Override
-        public int getCount() {
-            return mTabs.size();
-        }
-
-        @Override
-        public Tab getItem(int position) {
-            return mTabs.get(position);
-        }
-
-        @Override
-        public long getItemId(int position) {
-            return position;
-        }
-
-        @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
-            final Tab tab = mTabs.get(position);
-            View view = mInflater.inflate(R.layout.qc_tab,
-                    null);
-            ImageView thumb = (ImageView) view.findViewById(R.id.thumb);
-            TextView title1 = (TextView) view.findViewById(R.id.title1);
-            TextView title2 = (TextView) view.findViewById(R.id.title2);
-            Bitmap b = tab.getScreenshot();
-            if (b != null) {
-                thumb.setImageBitmap(b);
-            }
-            if (position > mCurrent) {
-                title1.setVisibility(View.GONE);
-                title2.setText(tab.getTitle());
-            } else {
-                title2.setVisibility(View.GONE);
-                title1.setText(tab.getTitle());
-            }
-            view.setOnClickListener(new OnClickListener() {
-                @Override
-                public void onClick(View v) {
-                    mUiController.switchToTab(tab);
-                }
-            });
-            return view;
-        }
-
-        @Override
-        public void onSetCurrent(int index) {
-            mCurrent = index;
-        }
-
-    }
-
-}
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index 83dc371..6f2acd4 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -83,7 +83,6 @@
     // ----------------------
     // Keys for lab_preferences.xml
     // ----------------------
-    static final String PREF_ENABLE_QUICK_CONTROLS = "enable_quick_controls";
     static final String PREF_FULLSCREEN = "fullscreen";
 
     // ----------------------
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index d4d6cba..2254e4a 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -741,7 +741,7 @@
         if (getWebView() != null) {
             if (fullScreen)
                 getWebView().updateTopControls(true, false, true);
-            else if (!mSettings.useQuickControls())
+            else
                 getWebView().updateTopControls(true, true, true);
         }
 
diff --git a/src/com/android/browser/TabBar.java b/src/com/android/browser/TabBar.java
index 4078ba4..a4e039d 100644
--- a/src/com/android/browser/TabBar.java
+++ b/src/com/android/browser/TabBar.java
@@ -86,7 +86,6 @@
     private int mTabOverlap;
     private int mAddTabOverlap;
     private int mTabSliceWidth;
-    private boolean mUseQuickControls;
 
     public TabBar(Activity activity, UiController controller, XLargeUi ui) {
         super(activity);
@@ -135,12 +134,6 @@
         mTabs.updateLayout();
     }
 
-    void setUseQuickControls(boolean useQuickControls) {
-        mUseQuickControls = useQuickControls;
-        mNewTab.setVisibility(mUseQuickControls ? View.GONE
-                : View.VISIBLE);
-    }
-
     int getTabCount() {
         return mTabMap.size();
     }
@@ -160,9 +153,7 @@
         super.onMeasure(hspec, vspec);
         int w = getMeasuredWidth();
         // adjust for new tab overlap
-        if (!mUseQuickControls) {
-            w -= mAddTabOverlap;
-        }
+        w -= mAddTabOverlap;
         setMeasuredDimension(w, getMeasuredHeight());
     }
 
@@ -173,35 +164,22 @@
         int pt = getPaddingTop();
         int sw = mTabs.getMeasuredWidth();
         int w = right - left - pl;
-        if (mUseQuickControls) {
-            mButtonWidth = 0;
-        } else {
-            mButtonWidth = mNewTab.getMeasuredWidth() - mAddTabOverlap;
-            if (w-sw < mButtonWidth) {
-                sw = w - mButtonWidth;
-            }
+        mButtonWidth = mNewTab.getMeasuredWidth() - mAddTabOverlap;
+        if (w-sw < mButtonWidth) {
+            sw = w - mButtonWidth;
         }
         mTabs.layout(pl, pt, pl + sw, bottom - top);
         // adjust for overlap
-        if (!mUseQuickControls) {
-            mNewTab.layout(pl + sw - mAddTabOverlap, pt,
-                    pl + sw + mButtonWidth - mAddTabOverlap, bottom - top);
-        }
+        mNewTab.layout(pl + sw - mAddTabOverlap, pt,
+                pl + sw + mButtonWidth - mAddTabOverlap, bottom - top);
+
     }
 
     public void onClick(View view) {
         if (mNewTab == view) {
             mUiController.openTabToHomePage();
         } else if (mTabs.getSelectedTab() == view) {
-            if (mUseQuickControls) {
-                if (mUi.isTitleBarShowing() && !isLoading()) {
-                    mUi.stopEditingUrl();
-                    mUi.hideTitleBar();
-                } else {
-                    mUi.stopWebViewScrolling();
-                    mUi.editUrl(false, false);
-                }
-            } else if (mUi.isTitleBarShowing() && !isLoading()) {
+            if (mUi.isTitleBarShowing() && !isLoading()) {
                 mUi.stopEditingUrl();
                 mUi.hideTitleBar();
             } else {
diff --git a/src/com/android/browser/TitleBar.java b/src/com/android/browser/TitleBar.java
index 6c9130a..1ea4dad 100644
--- a/src/com/android/browser/TitleBar.java
+++ b/src/com/android/browser/TitleBar.java
@@ -55,7 +55,6 @@
     private AccessibilityManager mAccessibilityManager;
 
     private NavigationBarBase mNavBar;
-    private boolean mUseQuickControls;
     private SnapshotBar mSnapshotBar;
 
     //state
@@ -113,8 +112,7 @@
     }
 
     private void setFixedTitleBar() {
-        boolean isFixed = !mUseQuickControls
-                && !getContext().getResources().getBoolean(R.bool.hide_title);
+        boolean isFixed = !getContext().getResources().getBoolean(R.bool.hide_title);
 
         isFixed |= mAccessibilityManager.isEnabled();
         // If getParent() returns null, we are initializing
@@ -143,18 +141,6 @@
         return mUiController;
     }
 
-    public void setUseQuickControls(boolean use) {
-        mUseQuickControls = use;
-        setFixedTitleBar();
-        if (use) {
-            this.setVisibility(View.GONE);
-            hideTopControls();
-        } else {
-            this.setVisibility(View.VISIBLE);
-            enableTopControls();
-        }
-    }
-
     void setShowProgressOnly(boolean progress) {
         if (progress && !wantsToBeVisible()) {
             mNavBar.setVisibility(View.GONE);
@@ -179,7 +165,7 @@
     private static final  boolean bOldStyleAutoHideDisabled = true;
     void show() {
         cancelTitleBarAnimation(false);
-        if (mUseQuickControls || mSkipTitleBarAnimations) {
+        if (mSkipTitleBarAnimations) {
             this.setVisibility(View.VISIBLE);
             this.setTranslationY(0);
             hideTopControls();
@@ -200,23 +186,18 @@
     }
 
     void hide() {
-        if (mUseQuickControls) {
-            this.setVisibility(View.GONE);
-            hideTopControls();
+        if (mIsFixedTitleBar || bOldStyleAutoHideDisabled) return;
+        if (!mSkipTitleBarAnimations) {
+            cancelTitleBarAnimation(false);
+            int visibleHeight = getVisibleTitleHeight();
+            mTitleBarAnimator = ObjectAnimator.ofFloat(this,
+                    "translationY", getTranslationY(),
+                    (-getEmbeddedHeight() + visibleHeight));
+            mTitleBarAnimator.addListener(mHideTileBarAnimatorListener);
+            setupTitleBarAnimator(mTitleBarAnimator);
+            mTitleBarAnimator.start();
         } else {
-            if (mIsFixedTitleBar || bOldStyleAutoHideDisabled) return;
-            if (!mSkipTitleBarAnimations) {
-                cancelTitleBarAnimation(false);
-                int visibleHeight = getVisibleTitleHeight();
-                mTitleBarAnimator = ObjectAnimator.ofFloat(this,
-                        "translationY", getTranslationY(),
-                        (-getEmbeddedHeight() + visibleHeight));
-                mTitleBarAnimator.addListener(mHideTileBarAnimatorListener);
-                setupTitleBarAnimator(mTitleBarAnimator);
-                mTitleBarAnimator.start();
-            } else {
-                onScrollChanged();
-            }
+            onScrollChanged();
         }
         mShowing = false;
     }
@@ -298,19 +279,11 @@
             mNavBar.onProgressStopped();
             // check if needs to be hidden
             if (!isEditingUrl() && !wantsToBeVisible()) {
-                if (mUseQuickControls) {
-                    hide();
-                } else {
-                    mBaseUi.showTitleBarForDuration();
-                }
+                mBaseUi.showTitleBarForDuration();
             }
 
             //onPageFinished
-            if (mUseQuickControls) {
-                hideTopControls();
-            } else {
-                enableTopControls();
-            }
+            enableTopControls();
 
         } else {
             if (!mInLoad) {
@@ -319,17 +292,10 @@
                 mNavBar.onProgressStarted();
 
                 //onPageStarted
-                if (mUseQuickControls) {
-                    hideTopControls();
-                } else {
-                    showTopControls();
-                }
+                showTopControls();
             }
             mProgress.setProgress(newProgress * PageProgressView.MAX_PROGRESS
                     / PROGRESS_MAX);
-            if (mUseQuickControls && !isEditingUrl()) {
-                setShowProgressOnly(true);
-            }
             if (!mShowing) {
                 show();
             }
@@ -337,7 +303,7 @@
     }
 
     public int getEmbeddedHeight() {
-        if (mUseQuickControls || mIsFixedTitleBar) return 0;
+        if (mIsFixedTitleBar) return 0;
         return calculateEmbeddedHeight();
     }
 
@@ -376,10 +342,6 @@
         return mNavBar;
     }
 
-    public boolean useQuickControls() {
-        return mUseQuickControls;
-    }
-
     public boolean isInLoad() {
         return mInLoad;
     }
diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java
index f24f8f3..a374203 100644
--- a/src/com/android/browser/UI.java
+++ b/src/com/android/browser/UI.java
@@ -138,8 +138,6 @@
 
     void setFullscreen(boolean enabled);
 
-    void setUseQuickControls(boolean enabled);
-
     void translateTitleBar(float topControlsOffsetYPix);
 
     public boolean shouldCaptureThumbnails();
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 8dd31d8..08d742e 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -64,7 +64,6 @@
         mTabBar = new TabBar(mActivity, mUiController, this);
         mActionBar = mActivity.getActionBar();
         setupActionBar();
-        setUseQuickControls(BrowserSettings.getInstance().useQuickControls());
     }
 
     private void setupActionBar() {
@@ -75,33 +74,9 @@
 
     public void showComboView(ComboViews startWith, Bundle extras) {
         super.showComboView(startWith, extras);
-        if (mUseQuickControls) {
-            mActionBar.show();
-        }
-    }
-
-    @Override
-    public void setUseQuickControls(boolean useQuickControls) {
-        super.setUseQuickControls(useQuickControls);
-        checkHideActionBar();
-        if (!useQuickControls) {
-            mActionBar.show();
-        }
-        mTabBar.setUseQuickControls(mUseQuickControls);
-        // We need to update the tabs with this change
-        for (Tab t : mTabControl.getTabs()) {
-            t.updateShouldCaptureThumbnails();
-        }
     }
 
     private void checkHideActionBar() {
-        if (mUseQuickControls) {
-            mHandler.post(new Runnable() {
-                public void run() {
-                    mActionBar.hide();
-                }
-            });
-        }
     }
 
     @Override
@@ -189,9 +164,6 @@
 
     @Override
     public void editUrl(boolean clearInput, boolean forceIME) {
-        if (mUseQuickControls) {
-            mTitleBar.setShowProgressOnly(false);
-        }
         super.editUrl(clearInput, forceIME);
     }
 
@@ -211,9 +183,6 @@
         if (inLoad) {
             // the titlebar was removed when the CAB was shown
             // if the page is loading, show it again
-            if (mUseQuickControls) {
-                mTitleBar.setShowProgressOnly(true);
-            }
             showTitleBar();
         }
     }
@@ -276,7 +245,7 @@
 
     @Override
     public boolean shouldCaptureThumbnails() {
-        return mUseQuickControls;
+        return false;
     }
 
     private Drawable getFaviconBackground() {
diff --git a/src/com/android/browser/view/BasePieView.java b/src/com/android/browser/view/BasePieView.java
deleted file mode 100644
index b9178be..0000000
--- a/src/com/android/browser/view/BasePieView.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2011 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.view;
-
-import android.database.DataSetObserver;
-import android.graphics.Canvas;
-import android.view.MotionEvent;
-import android.view.View;
-import android.widget.Adapter;
-
-import java.util.ArrayList;
-
-/**
- * common code for pie views
- */
-public abstract class BasePieView implements PieMenu.PieView {
-
-    protected Adapter mAdapter;
-    private DataSetObserver mObserver;
-    protected ArrayList<View> mViews;
-
-    protected OnLayoutListener mListener;
-
-    protected int mCurrent;
-    protected int mChildWidth;
-    protected int mChildHeight;
-    protected int mWidth;
-    protected int mHeight;
-    protected int mLeft;
-    protected int mTop;
-
-    public BasePieView() {
-    }
-
-    public void setLayoutListener(OnLayoutListener l) {
-        mListener = l;
-    }
-
-    public void setAdapter(Adapter adapter) {
-        mAdapter = adapter;
-        if (adapter == null) {
-            if (mAdapter != null) {
-                mAdapter.unregisterDataSetObserver(mObserver);
-            }
-            mViews = null;
-            mCurrent = -1;
-        } else {
-            mObserver = new DataSetObserver() {
-                @Override
-                public void onChanged() {
-                    buildViews();
-                }
-
-                @Override
-                public void onInvalidated() {
-                    mViews.clear();
-                }
-            };
-            mAdapter.registerDataSetObserver(mObserver);
-            setCurrent(0);
-        }
-    }
-
-    public void setCurrent(int ix) {
-        mCurrent = ix;
-    }
-
-    public Adapter getAdapter() {
-        return mAdapter;
-    }
-
-    protected void buildViews() {
-        if (mAdapter != null) {
-            final int n = mAdapter.getCount();
-            if (mViews == null) {
-                mViews = new ArrayList<View>(n);
-            } else {
-                mViews.clear();
-            }
-            mChildWidth = 0;
-            mChildHeight = 0;
-            for (int i = 0; i < n; i++) {
-                View view = mAdapter.getView(i, null, null);
-                view.measure(View.MeasureSpec.UNSPECIFIED,
-                        View.MeasureSpec.UNSPECIFIED);
-                mChildWidth = Math.max(mChildWidth, view.getMeasuredWidth());
-                mChildHeight = Math.max(mChildHeight, view.getMeasuredHeight());
-                mViews.add(view);
-            }
-        }
-    }
-
-    /**
-     * this will be called before the first draw call
-     * needs to set top, left, width, height
-     */
-    @Override
-    public void layout(int anchorX, int anchorY, boolean left, float angle,
-            int parentHeight) {
-        if (mListener != null) {
-            mListener.onLayout(anchorX, anchorY, left);
-        }
-    }
-
-
-    @Override
-    public abstract void draw(Canvas canvas);
-
-    protected void drawView(View view, Canvas canvas) {
-        final int state = canvas.save();
-        canvas.translate(view.getLeft(), view.getTop());
-        view.draw(canvas);
-        canvas.restoreToCount(state);
-    }
-
-    protected abstract int findChildAt(int y);
-
-    @Override
-    public boolean onTouchEvent(MotionEvent evt) {
-        int action = evt.getActionMasked();
-        int evtx = (int) evt.getX();
-        int evty = (int) evt.getY();
-        if ((evtx < mLeft) || (evtx >= mLeft + mWidth)
-                || (evty < mTop) || (evty >= mTop + mHeight)) {
-            return false;
-        }
-        switch (action) {
-            case MotionEvent.ACTION_MOVE:
-                View v = mViews.get(mCurrent);
-                setCurrent(Math.max(0, Math.min(mViews.size() -1,
-                        findChildAt(evty))));
-                View v1 = mViews.get(mCurrent);
-                if (v != v1) {
-                    v.setPressed(false);
-                    v1.setPressed(true);
-                }
-                break;
-            case MotionEvent.ACTION_UP:
-                mViews.get(mCurrent).performClick();
-                mViews.get(mCurrent).setPressed(false);
-                break;
-            default:
-                break;
-        }
-        return true;
-    }
-
-}
diff --git a/src/com/android/browser/view/PieItem.java b/src/com/android/browser/view/PieItem.java
deleted file mode 100644
index 9e04ecb..0000000
--- a/src/com/android/browser/view/PieItem.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2011 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.view;
-
-import android.view.View;
-
-import com.android.browser.view.PieMenu.PieView;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Pie menu item
- */
-public class PieItem {
-
-    private View mView;
-    private PieView mPieView;
-    private int level;
-    private float start;
-    private float sweep;
-    private float animate;
-    private int inner;
-    private int outer;
-    private boolean mSelected;
-    private boolean mEnabled;
-    private List<PieItem> mItems;
-
-    public PieItem(View view, int level) {
-        mView = view;
-        this.level = level;
-        mEnabled = true;
-        setAnimationAngle(getAnimationAngle());
-        setAlpha(getAlpha());
-    }
-
-    public PieItem(View view, int level, PieView sym) {
-        mView = view;
-        this.level = level;
-        mPieView = sym;
-        mEnabled = false;
-    }
-
-    public boolean hasItems() {
-        return mItems != null;
-    }
-
-    public List<PieItem> getItems() {
-        return mItems;
-    }
-
-    public void addItem(PieItem item) {
-        if (mItems == null) {
-            mItems = new ArrayList<PieItem>();
-        }
-        mItems.add(item);
-    }
-
-    public void setAlpha(float alpha) {
-        if (mView != null) {
-            mView.setAlpha(alpha);
-        }
-    }
-
-    public float getAlpha() {
-        if (mView != null) {
-            return mView.getAlpha();
-        }
-        return 1;
-    }
-
-    public void setAnimationAngle(float a) {
-        animate = a;
-    }
-
-    public float getAnimationAngle() {
-        return animate;
-    }
-
-    public void setEnabled(boolean enabled) {
-        mEnabled = enabled;
-    }
-
-    public void setSelected(boolean s) {
-        mSelected = s;
-        if (mView != null) {
-            mView.setSelected(s);
-        }
-    }
-
-    public boolean isSelected() {
-        return mSelected;
-    }
-
-    public int getLevel() {
-        return level;
-    }
-
-    public void setGeometry(float st, float sw, int inside, int outside) {
-        start = st;
-        sweep = sw;
-        inner = inside;
-        outer = outside;
-    }
-
-    public float getStart() {
-        return start;
-    }
-
-    public float getStartAngle() {
-        return start + animate;
-    }
-
-    public float getSweep() {
-        return sweep;
-    }
-
-    public int getInnerRadius() {
-        return inner;
-    }
-
-    public int getOuterRadius() {
-        return outer;
-    }
-
-    public boolean isPieView() {
-        return (mPieView != null);
-    }
-
-    public View getView() {
-        return mView;
-    }
-
-    public void setPieView(PieView sym) {
-        mPieView = sym;
-    }
-
-    public PieView getPieView() {
-        if (mEnabled) {
-            return mPieView;
-        }
-        return null;
-    }
-
-}
diff --git a/src/com/android/browser/view/PieListView.java b/src/com/android/browser/view/PieListView.java
deleted file mode 100644
index 1043fc7..0000000
--- a/src/com/android/browser/view/PieListView.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2011 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.view;
-
-import com.android.browser.R;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.view.View;
-
-/**
- * shows views in a menu style list
- */
-public class PieListView extends BasePieView {
-
-    private Paint mBgPaint;
-
-    public PieListView(Context ctx) {
-        mBgPaint = new Paint();
-        mBgPaint.setColor(ctx.getResources().getColor(R.color.qcMenuBackground));
-    }
-
-    /**
-     * this will be called before the first draw call
-     */
-    @Override
-    public void layout(int anchorX, int anchorY, boolean left, float angle,
-            int pHeight) {
-        super.layout(anchorX, anchorY, left, angle, pHeight);
-        buildViews();
-        mWidth = mChildWidth;
-        mHeight = mChildHeight * mAdapter.getCount();
-        mLeft = anchorX + (left ? 0 : - mChildWidth);
-        mTop = Math.max(anchorY - mHeight / 2, 0);
-        if (mTop + mHeight > pHeight) {
-            mTop = pHeight - mHeight;
-        }
-        if (mViews != null) {
-            layoutChildrenLinear();
-        }
-    }
-
-    protected void layoutChildrenLinear() {
-        final int n = mViews.size();
-        int top = mTop;
-        for (View view : mViews) {
-            view.layout(mLeft, top, mLeft + mChildWidth, top + mChildHeight);
-            top += mChildHeight;
-        }
-    }
-
-    @Override
-    public void draw(Canvas canvas) {
-        canvas.drawRect(mLeft, mTop, mLeft + mWidth, mTop + mHeight, mBgPaint);
-        if (mViews != null) {
-            for (View view : mViews) {
-                drawView(view, canvas);
-            }
-        }
-    }
-
-    @Override
-    protected int findChildAt(int y) {
-        final int ix = (y - mTop) * mViews.size() / mHeight;
-        return ix;
-    }
-
-}
diff --git a/src/com/android/browser/view/PieMenu.java b/src/com/android/browser/view/PieMenu.java
deleted file mode 100644
index 1699c27..0000000
--- a/src/com/android/browser/view/PieMenu.java
+++ /dev/null
@@ -1,636 +0,0 @@
-/*
- * 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.view;
-
-import android.animation.Animator;
-import android.animation.Animator.AnimatorListener;
-import android.animation.AnimatorListenerAdapter;
-import android.animation.ValueAnimator;
-import android.animation.ValueAnimator.AnimatorUpdateListener;
-import android.content.Context;
-import android.content.res.Resources;
-import android.graphics.Canvas;
-import android.graphics.Paint;
-import android.graphics.Path;
-import android.graphics.Point;
-import android.graphics.PointF;
-import android.graphics.RectF;
-import android.graphics.drawable.Drawable;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.SoundEffectConstants;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.FrameLayout;
-
-import com.android.browser.R;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class PieMenu extends FrameLayout {
-
-    private static final int MAX_LEVELS = 5;
-    private static final long ANIMATION = 80;
-
-    public interface PieController {
-        /**
-         * called before menu opens to customize menu
-         * returns if pie state has been changed
-         */
-        public boolean onOpen();
-        public void stopEditingUrl();
-
-    }
-
-    /**
-     * A view like object that lives off of the pie menu
-     */
-    public interface PieView {
-
-        public interface OnLayoutListener {
-            public void onLayout(int ax, int ay, boolean left);
-        }
-
-        public void setLayoutListener(OnLayoutListener l);
-
-        public void layout(int anchorX, int anchorY, boolean onleft, float angle,
-                int parentHeight);
-
-        public void draw(Canvas c);
-
-        public boolean onTouchEvent(MotionEvent evt);
-
-    }
-
-    private Point mCenter;
-    private int mRadius;
-    private int mRadiusInc;
-    private int mSlop;
-    private int mTouchOffset;
-    private Path mPath;
-
-    private boolean mOpen;
-    private PieController mController;
-
-    private List<PieItem> mItems;
-    private int mLevels;
-    private int[] mCounts;
-    private PieView mPieView = null;
-
-    // sub menus
-    private List<PieItem> mCurrentItems;
-    private PieItem mOpenItem;
-
-    private Drawable mBackground;
-    private Paint mNormalPaint;
-    private Paint mSelectedPaint;
-    private Paint mSubPaint;
-
-    // touch handling
-    private PieItem mCurrentItem;
-
-    private boolean mUseBackground;
-    private boolean mAnimating;
-
-    /**
-     * @param context
-     * @param attrs
-     * @param defStyle
-     */
-    public PieMenu(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-        init(context);
-    }
-
-    /**
-     * @param context
-     * @param attrs
-     */
-    public PieMenu(Context context, AttributeSet attrs) {
-        super(context, attrs);
-        init(context);
-    }
-
-    /**
-     * @param context
-     */
-    public PieMenu(Context context) {
-        super(context);
-        init(context);
-    }
-
-    private void init(Context ctx) {
-        mItems = new ArrayList<PieItem>();
-        mLevels = 0;
-        mCounts = new int[MAX_LEVELS];
-        Resources res = ctx.getResources();
-        mRadius = (int) res.getDimension(R.dimen.qc_radius_start);
-        mRadiusInc = (int) res.getDimension(R.dimen.qc_radius_increment);
-        mSlop = (int) res.getDimension(R.dimen.qc_slop);
-        mTouchOffset = (int) res.getDimension(R.dimen.qc_touch_offset);
-        mOpen = false;
-        setWillNotDraw(false);
-        setDrawingCacheEnabled(false);
-        mCenter = new Point(0,0);
-        mBackground = res.getDrawable(R.drawable.qc_background_normal);
-        mNormalPaint = new Paint();
-        mNormalPaint.setColor(res.getColor(R.color.qc_normal));
-        mNormalPaint.setAntiAlias(true);
-        mSelectedPaint = new Paint();
-        mSelectedPaint.setColor(res.getColor(R.color.qc_selected));
-        mSelectedPaint.setAntiAlias(true);
-        mSubPaint = new Paint();
-        mSubPaint.setAntiAlias(true);
-        mSubPaint.setColor(res.getColor(R.color.qc_sub));
-    }
-
-    public void setController(PieController ctl) {
-        mController = ctl;
-    }
-
-    public void setUseBackground(boolean useBackground) {
-        mUseBackground = useBackground;
-    }
-
-    public void addItem(PieItem item) {
-        // add the item to the pie itself
-        mItems.add(item);
-        int l = item.getLevel();
-        mLevels = Math.max(mLevels, l);
-        mCounts[l]++;
-    }
-
-    public void removeItem(PieItem item) {
-        mItems.remove(item);
-    }
-
-    public void clearItems() {
-        mItems.clear();
-    }
-
-    private boolean onTheLeft() {
-        return mCenter.x < mSlop;
-    }
-
-    /**
-     * guaranteed has center set
-     * @param show
-     */
-    private void show(boolean show) {
-        mOpen = show;
-        if (mOpen) {
-            // ensure clean state
-            mAnimating = false;
-            mCurrentItem = null;
-            mOpenItem = null;
-            mPieView = null;
-            mController.stopEditingUrl();
-            mCurrentItems = mItems;
-            for (PieItem item : mCurrentItems) {
-                item.setSelected(false);
-            }
-            if (mController != null) {
-                boolean changed = mController.onOpen();
-            }
-            layoutPie();
-            animateOpen();
-        }
-        invalidate();
-    }
-
-    private void animateOpen() {
-        ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
-        anim.addUpdateListener(new AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-                for (PieItem item : mCurrentItems) {
-                    item.setAnimationAngle((1 - animation.getAnimatedFraction()) * (- item.getStart()));
-                }
-                invalidate();
-            }
-
-        });
-        anim.setDuration(2*ANIMATION);
-        anim.start();
-    }
-
-    private void setCenter(int x, int y) {
-        if (x < mSlop) {
-            mCenter.x = 0;
-        } else {
-            mCenter.x = getWidth();
-        }
-        mCenter.y = y;
-    }
-
-    private void layoutPie() {
-        float emptyangle = (float) Math.PI / 16;
-        int rgap = 2;
-        int inner = mRadius + rgap;
-        int outer = mRadius + mRadiusInc - rgap;
-        int gap = 1;
-        for (int i = 0; i < mLevels; i++) {
-            int level = i + 1;
-            float sweep = (float) (Math.PI - 2 * emptyangle) / mCounts[level];
-            float angle = emptyangle + sweep / 2;
-            mPath = makeSlice(getDegrees(0) - gap, getDegrees(sweep) + gap, outer, inner, mCenter);
-            for (PieItem item : mCurrentItems) {
-                if (item.getLevel() == level) {
-                    View view = item.getView();
-                    if (view != null) {
-                        view.measure(view.getLayoutParams().width,
-                                view.getLayoutParams().height);
-                        int w = view.getMeasuredWidth();
-                        int h = view.getMeasuredHeight();
-                        int r = inner + (outer - inner) * 2 / 3;
-                        int x = (int) (r * Math.sin(angle));
-                        int y = mCenter.y - (int) (r * Math.cos(angle)) - h / 2;
-                        if (onTheLeft()) {
-                            x = mCenter.x + x - w / 2;
-                        } else {
-                            x = mCenter.x - x - w / 2;
-                        }
-                        view.layout(x, y, x + w, y + h);
-                    }
-                    float itemstart = angle - sweep / 2;
-                    item.setGeometry(itemstart, sweep, inner, outer);
-                    angle += sweep;
-                }
-            }
-            inner += mRadiusInc;
-            outer += mRadiusInc;
-        }
-    }
-
-
-    /**
-     * converts a
-     *
-     * @param angle from 0..PI to Android degrees (clockwise starting at 3
-     *        o'clock)
-     * @return skia angle
-     */
-    private float getDegrees(double angle) {
-        return (float) (270 - 180 * angle / Math.PI);
-    }
-
-    @Override
-    protected void onDraw(Canvas canvas) {
-        if (mOpen) {
-            int state;
-            if (mUseBackground) {
-                int w = mBackground.getIntrinsicWidth();
-                int h = mBackground.getIntrinsicHeight();
-                int left = mCenter.x - w;
-                int top = mCenter.y - h / 2;
-                mBackground.setBounds(left, top, left + w, top + h);
-                state = canvas.save();
-                if (onTheLeft()) {
-                    canvas.scale(-1, 1);
-                }
-                mBackground.draw(canvas);
-                canvas.restoreToCount(state);
-            }
-            // draw base menu
-            PieItem last = mCurrentItem;
-            if (mOpenItem != null) {
-                last = mOpenItem;
-            }
-            for (PieItem item : mCurrentItems) {
-                if (item != last) {
-                    drawItem(canvas, item);
-                }
-            }
-            if (last != null) {
-                drawItem(canvas, last);
-            }
-            if (mPieView != null) {
-                mPieView.draw(canvas);
-            }
-        }
-    }
-
-    private void drawItem(Canvas canvas, PieItem item) {
-        if (item.getView() != null) {
-            Paint p = item.isSelected() ? mSelectedPaint : mNormalPaint;
-            if (!mItems.contains(item)) {
-                p = item.isSelected() ? mSelectedPaint : mSubPaint;
-            }
-            int state = canvas.save();
-            if (onTheLeft()) {
-                canvas.scale(-1, 1);
-            }
-            float r = getDegrees(item.getStartAngle()) - 270; // degrees(0)
-            canvas.rotate(r, mCenter.x, mCenter.y);
-            canvas.drawPath(mPath, p);
-            canvas.restoreToCount(state);
-            // draw the item view
-            View view = item.getView();
-            state = canvas.save();
-            canvas.translate(view.getX(), view.getY());
-            view.draw(canvas);
-            canvas.restoreToCount(state);
-        }
-    }
-
-    private Path makeSlice(float start, float end, int outer, int inner, Point center) {
-        RectF bb =
-                new RectF(center.x - outer, center.y - outer, center.x + outer,
-                        center.y + outer);
-        RectF bbi =
-                new RectF(center.x - inner, center.y - inner, center.x + inner,
-                        center.y + inner);
-        Path path = new Path();
-        path.arcTo(bb, start, end - start, true);
-        path.arcTo(bbi, end, start - end);
-        path.close();
-        return path;
-    }
-
-    // touch handling for pie
-
-    @Override
-    public boolean onTouchEvent(MotionEvent evt) {
-        float x = evt.getX();
-        float y = evt.getY();
-        int action = evt.getActionMasked();
-        if (MotionEvent.ACTION_DOWN == action) {
-            if ((x > getWidth() - mSlop) || (x < mSlop)) {
-                setCenter((int) x, (int) y);
-                show(true);
-                return true;
-            }
-        } else if (MotionEvent.ACTION_UP == action) {
-            if (mOpen) {
-                boolean handled = false;
-                if (mPieView != null) {
-                    handled = mPieView.onTouchEvent(evt);
-                }
-                PieItem item = mCurrentItem;
-                if (!mAnimating) {
-                    deselect();
-                }
-                show(false);
-                if (!handled && (item != null) && (item.getView() != null)) {
-                    if ((item == mOpenItem) || !mAnimating) {
-                        item.getView().performClick();
-                    }
-                }
-                return true;
-            }
-        } else if (MotionEvent.ACTION_CANCEL == action) {
-            if (mOpen) {
-                show(false);
-            }
-            if (!mAnimating) {
-                deselect();
-                invalidate();
-            }
-            return false;
-        } else if (MotionEvent.ACTION_MOVE == action) {
-            if (mAnimating) return false;
-            boolean handled = false;
-            PointF polar = getPolar(x, y);
-            int maxr = mRadius + mLevels * mRadiusInc + 50;
-            if (mPieView != null) {
-                handled = mPieView.onTouchEvent(evt);
-            }
-            if (handled) {
-                invalidate();
-                return false;
-            }
-            if (polar.y < mRadius) {
-                if (mOpenItem != null) {
-                    closeSub();
-                } else if (!mAnimating) {
-                    deselect();
-                    invalidate();
-                }
-                return false;
-            }
-            if (polar.y > maxr) {
-                deselect();
-                show(false);
-                evt.setAction(MotionEvent.ACTION_DOWN);
-                if (getParent() != null) {
-                    ((ViewGroup) getParent()).dispatchTouchEvent(evt);
-                }
-                return false;
-            }
-            PieItem item = findItem(polar);
-            if (item == null) {
-            } else if (mCurrentItem != item) {
-                onEnter(item);
-                if ((item != null) && item.isPieView() && (item.getView() != null)) {
-                    int cx = item.getView().getLeft() + (onTheLeft()
-                            ? item.getView().getWidth() : 0);
-                    int cy = item.getView().getTop();
-                    mPieView = item.getPieView();
-                    layoutPieView(mPieView, cx, cy,
-                            (item.getStartAngle() + item.getSweep()) / 2);
-                }
-                invalidate();
-            }
-        }
-        // always re-dispatch event
-        return false;
-    }
-
-    private void layoutPieView(PieView pv, int x, int y, float angle) {
-        pv.layout(x, y, onTheLeft(), angle, getHeight());
-    }
-
-    /**
-     * enter a slice for a view
-     * updates model only
-     * @param item
-     */
-    private void onEnter(PieItem item) {
-        // deselect
-        if (mCurrentItem != null) {
-            mCurrentItem.setSelected(false);
-        }
-        if (item != null) {
-            // clear up stack
-            playSoundEffect(SoundEffectConstants.CLICK);
-            item.setSelected(true);
-            mPieView = null;
-            mCurrentItem = item;
-            if ((mCurrentItem != mOpenItem) && mCurrentItem.hasItems()) {
-                openSub(mCurrentItem);
-                mOpenItem = item;
-            }
-        } else {
-            mCurrentItem = null;
-        }
-
-    }
-
-    private void animateOut(final PieItem fixed, AnimatorListener listener) {
-        if ((mCurrentItems == null) || (fixed == null)) return;
-        final float target = fixed.getStartAngle();
-        ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
-        anim.addUpdateListener(new AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-                for (PieItem item : mCurrentItems) {
-                    if (item != fixed) {
-                        item.setAnimationAngle(animation.getAnimatedFraction()
-                                * (target - item.getStart()));
-                    }
-                }
-                invalidate();
-            }
-        });
-        anim.setDuration(ANIMATION);
-        anim.addListener(listener);
-        anim.start();
-    }
-
-    private void animateIn(final PieItem fixed, AnimatorListener listener) {
-        if ((mCurrentItems == null) || (fixed == null)) return;
-        final float target = fixed.getStartAngle();
-        ValueAnimator anim = ValueAnimator.ofFloat(0, 1);
-        anim.addUpdateListener(new AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-                for (PieItem item : mCurrentItems) {
-                    if (item != fixed) {
-                        item.setAnimationAngle((1 - animation.getAnimatedFraction())
-                                * (target - item.getStart()));
-                    }
-                }
-                invalidate();
-
-            }
-
-        });
-        anim.setDuration(ANIMATION);
-        anim.addListener(listener);
-        anim.start();
-    }
-
-    private void openSub(final PieItem item) {
-        mAnimating = true;
-        animateOut(item, new AnimatorListenerAdapter() {
-            public void onAnimationEnd(Animator a) {
-                for (PieItem item : mCurrentItems) {
-                    item.setAnimationAngle(0);
-                }
-                mCurrentItems = new ArrayList<PieItem>(mItems.size());
-                int i = 0, j = 0;
-                while (i < mItems.size()) {
-                    if (mItems.get(i) == item) {
-                        mCurrentItems.add(item);
-                    } else {
-                        mCurrentItems.add(item.getItems().get(j++));
-                    }
-                    i++;
-                }
-                layoutPie();
-                animateIn(item, new AnimatorListenerAdapter() {
-                    public void onAnimationEnd(Animator a) {
-                        for (PieItem item : mCurrentItems) {
-                            item.setAnimationAngle(0);
-                        }
-                        mAnimating = false;
-                    }
-                });
-            }
-        });
-    }
-
-    private void closeSub() {
-        mAnimating = true;
-        if (mCurrentItem != null) {
-            mCurrentItem.setSelected(false);
-        }
-        animateOut(mOpenItem, new AnimatorListenerAdapter() {
-            public void onAnimationEnd(Animator a) {
-                for (PieItem item : mCurrentItems) {
-                    item.setAnimationAngle(0);
-                }
-                mCurrentItems = mItems;
-                mPieView = null;
-                animateIn(mOpenItem, new AnimatorListenerAdapter() {
-                    public void onAnimationEnd(Animator a) {
-                        for (PieItem item : mCurrentItems) {
-                            item.setAnimationAngle(0);
-                        }
-                        mAnimating = false;
-                        mOpenItem = null;
-                        mCurrentItem = null;
-                    }
-                });
-            }
-        });
-    }
-
-    private void deselect() {
-        if (mCurrentItem != null) {
-            mCurrentItem.setSelected(false);
-        }
-        if (mOpenItem != null) {
-            mOpenItem = null;
-            mCurrentItems = mItems;
-        }
-        mCurrentItem = null;
-        mPieView = null;
-    }
-
-    private PointF getPolar(float x, float y) {
-        PointF res = new PointF();
-        // get angle and radius from x/y
-        res.x = (float) Math.PI / 2;
-        x = mCenter.x - x;
-        if (mCenter.x < mSlop) {
-            x = -x;
-        }
-        y = mCenter.y - y;
-        res.y = (float) Math.sqrt(x * x + y * y);
-        if (y > 0) {
-            res.x = (float) Math.asin(x / res.y);
-        } else if (y < 0) {
-            res.x = (float) (Math.PI - Math.asin(x / res.y ));
-        }
-        return res;
-    }
-
-    /**
-     *
-     * @param polar x: angle, y: dist
-     * @return the item at angle/dist or null
-     */
-    private PieItem findItem(PointF polar) {
-        // find the matching item:
-        for (PieItem item : mCurrentItems) {
-            if (inside(polar, mTouchOffset, item)) {
-                return item;
-            }
-        }
-        return null;
-    }
-
-    private boolean inside(PointF polar, float offset, PieItem item) {
-        return (item.getInnerRadius() - offset < polar.y)
-        && (item.getOuterRadius() - offset > polar.y)
-        && (item.getStartAngle() < polar.x)
-        && (item.getStartAngle() + item.getSweep() > polar.x);
-    }
-
-}
diff --git a/src/com/android/browser/view/PieStackView.java b/src/com/android/browser/view/PieStackView.java
deleted file mode 100644
index e1f41bd..0000000
--- a/src/com/android/browser/view/PieStackView.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2011 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.view;
-
-import com.android.browser.R;
-
-import android.content.Context;
-import android.graphics.Canvas;
-import android.view.View;
-
-/**
- * shows views in a stack
- */
-public class PieStackView extends BasePieView {
-
-    private static final int SLOP = 5;
-
-    private OnCurrentListener mCurrentListener;
-    private int mMinHeight;
-
-    public interface OnCurrentListener {
-        public void onSetCurrent(int index);
-    }
-
-    public PieStackView(Context ctx) {
-        mMinHeight = (int) ctx.getResources()
-                .getDimension(R.dimen.qc_tab_title_height);
-    }
-
-    public void setOnCurrentListener(OnCurrentListener l) {
-        mCurrentListener = l;
-    }
-
-    @Override
-    public void setCurrent(int ix) {
-        super.setCurrent(ix);
-        if (mCurrentListener != null) {
-            mCurrentListener.onSetCurrent(ix);
-        }
-    }
-
-    /**
-     * this will be called before the first draw call
-     */
-    @Override
-    public void layout(int anchorX, int anchorY, boolean left, float angle,
-            int pHeight) {
-        super.layout(anchorX, anchorY, left, angle, pHeight);
-        buildViews();
-        mWidth = mChildWidth;
-        mHeight = mChildHeight + (mViews.size() - 1) * mMinHeight;
-        mLeft = anchorX + (left ? SLOP : -(SLOP + mChildWidth));
-        mTop = anchorY - mHeight / 2;
-        if (mViews != null) {
-            layoutChildrenLinear();
-        }
-    }
-
-    private void layoutChildrenLinear() {
-        final int n = mViews.size();
-        int top = mTop;
-        int dy = (n == 1) ? 0 : (mHeight - mChildHeight) / (n - 1);
-        for (View view : mViews) {
-            int x = mLeft;
-            view.layout(x, top, x + mChildWidth, top + mChildHeight);
-            top += dy;
-        }
-    }
-
-    @Override
-    public void draw(Canvas canvas) {
-        if ((mViews != null) && (mCurrent > -1)) {
-            final int n = mViews.size();
-            for (int i = 0; i < mCurrent; i++) {
-                drawView(mViews.get(i), canvas);
-            }
-            for (int i = n - 1; i > mCurrent; i--) {
-                drawView(mViews.get(i), canvas);
-            }
-            drawView(mViews.get(mCurrent), canvas);
-        }
-    }
-
-    @Override
-    protected int findChildAt(int y) {
-        final int ix = (y - mTop) * mViews.size() / mHeight;
-        return ix;
-    }
-
-}