qc refactor part1

   Bug: 4052266
   change QuickControl rendering (removes all path calculations)
   change pie to allow several levels of items

Change-Id: I52254745eadf956da83d963e23c1ba07946f53a7
diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
index 2e2eba4..ad47c72 100644
--- a/src/com/android/browser/PieControl.java
+++ b/src/com/android/browser/PieControl.java
@@ -16,6 +16,7 @@
 
 package com.android.browser;
 
+import com.android.browser.view.PieItem;
 import com.android.browser.view.PieMenu;
 
 import android.app.Activity;
@@ -26,9 +27,6 @@
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 
-import java.util.HashMap;
-import java.util.Map;
-
 /**
  * controller for Quick Controls pie menu
  */
@@ -38,24 +36,19 @@
     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;
+    private PieItem mBack;
+    private PieItem mForward;
+    private PieItem mRefresh;
+    private PieItem mUrl;
+    private PieItem mOptions;
+    private PieItem mBookmarks;
+    private PieItem mNewTab;
+    private PieItem mClose;
 
     public PieControl(Activity activity, UiController controller, XLargeUi ui) {
         mActivity = activity;
         mUiController = controller;
         mUi = ui;
-        mTabItems = new HashMap<View, Tab>();
     }
 
     protected void attachToContainer(FrameLayout container) {
@@ -64,22 +57,35 @@
             LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,
                     LayoutParams.MATCH_PARENT);
             mPie.setLayoutParams(lp);
-            mNewTab = makeMenuView(R.drawable.ic_pie_new_tab);
-            mPie.addItem(mNewTab);
-            mBack = makeMenuView(R.drawable.ic_pie_back);
-            mPie.addItem(mBack);
-            mUrl = makeMenuView(R.drawable.ic_pie_web);
-            mPie.addItem(mUrl);
-            mBookmarks = makeMenuView(R.drawable.ic_pie_bookmarks);
-            mPie.addItem(mBookmarks);
-            mOptions = makeMenuView(R.drawable.ic_pie_more);
-            mPie.addItem(mOptions);
+            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);
+            mRefresh = makeItem(R.drawable.ic_refresh_holo_dark, 2);
+            mForward = makeItem(R.drawable.ic_forward_holo_dark, 2);
+            mNewTab = makeItem(R.drawable.ic_new_window_holo_dark, 2);
+            mClose = makeItem(R.drawable.ic_close_window_holo_dark, 2);
+            mOptions = makeItem(
+                    com.android.internal.R.drawable.ic_menu_moreoverflow_normal_holo_dark,
+                    2);
             setClickListener(mBack,
+                    mRefresh,
+                    mForward,
                     mUrl,
                     mOptions,
                     mBookmarks,
-                    mNewTab
+                    mNewTab,
+                    mClose
                     );
+            // level 1
+            mPie.addItem(mBack);
+            mPie.addItem(mUrl);
+            mPie.addItem(mBookmarks);
+            // level 2
+            mPie.addItem(mForward);
+            mPie.addItem(mRefresh);
+            mPie.addItem(mNewTab);
+            mPie.addItem(mClose);
+            mPie.addItem(mOptions);
             mPie.setController(this);
         }
         container.addView(mPie);
@@ -89,17 +95,20 @@
         container.removeView(mPie);
     }
 
-    private ImageView makeMenuView(int image) {
-        ImageView item = new ImageView(mActivity);
-        item.setImageResource(image);
+    private PieItem makeItem(int image, int l) {
+        ImageView view = new ImageView(mActivity);
+        view.setImageResource(image);
+        view.setMinimumWidth(48);
+        view.setMinimumHeight(48);
         LayoutParams lp = new LayoutParams(48, 48);
-        item.setLayoutParams(lp);
-        return item;
+        view.setLayoutParams(lp);
+        view.setBackgroundResource(R.drawable.qc_item_selector);
+        return new PieItem(view, l);
     }
 
-    private void setClickListener(View... views) {
-        for (View view : views) {
-            view.setOnClickListener(this);
+    private void setClickListener(PieItem... items) {
+        for (PieItem item : items) {
+            item.getView().setOnClickListener(this);
         }
     }
 
@@ -112,41 +121,35 @@
 
     @Override
     public void onClick(View v) {
-        mPie.show(false);
         Tab tab = mUiController.getTabControl().getCurrentTab();
         WebView web = tab.getWebView();
-        if (mBack == v) {
+        if (mBack.getView() == v) {
             web.goBack();
-        } else if (mForward == v) {
+        } else if (mForward.getView() == v) {
             web.goForward();
-        } else if (mRefresh == v) {
+        } else if (mRefresh.getView() == v) {
             if (tab.inPageLoad()) {
                 web.stopLoading();
             } else {
                 web.reload();
             }
-        } else if (mUrl == v) {
+        } else if (mUrl.getView() == v) {
             mUi.showTitleBarAndEdit();
-        } else if (mOptions == v) {
+        } else if (mOptions.getView() == v) {
             mActivity.openOptionsMenu();
-        } else if (mBookmarks == v) {
+        } else if (mBookmarks.getView() == v) {
             mUiController.bookmarksOrHistoryPicker(false);
-        } else if (mNewTab == v) {
+        } else if (mNewTab.getView() == v) {
             mUiController.openTabToHomePage();
             mUi.showTitleBarAndEdit();
-        } else if (mClose == v) {
+        } else if (mClose.getView() == v) {
             mUiController.closeCurrentTab();
-        } else {
-            Tab ntab = mTabItems.get(v);
-            if (ntab != null) {
-                mUiController.switchToTab(mUiController.getTabControl().getTabIndex(ntab));
-            }
         }
     }
 
     @Override
     public boolean onOpen() {
-        return true;
+        return false;
     }
 
 }