Working towards a better QS

Some work (mostly on the new QS only) to make things more like they
will be.

 - Remove Quick Tiles
 - Remove Dual Tiles
 - All tiles are the same, with slightly different UI in the header
 - QS tiles in the header match the beginning of QS
 - handleClick is a click from QS, handleSecondaryClick is a click
   from the header, but defaults to normal behavior.
 - Opening a detail panel from the header opens QS and the detail
   selected
 - Fix onStartListening bug in CustomTile
 - UI updates towards how QS will look

Change-Id: Id820586ccdaa258a5bcb72cadbeb14941fc5f935
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
index bb2b8fc..cf1ffe3 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java
@@ -298,7 +298,7 @@
         showDetail(show, r);
     }
 
-    private void showDetail(boolean show, Record r) {
+    protected void showDetail(boolean show, Record r) {
         mHandler.obtainMessage(H.SHOW_DETAIL, show ? 1 : 0, 0, r).sendToTarget();
     }
 
@@ -330,10 +330,14 @@
         r.tileView.onStateChanged(state);
     }
 
+    protected QSTileBaseView createTileView(QSTile<?> tile) {
+        return new QSTileView(mContext, tile.createTileView(mContext));
+    }
+
     protected void addTile(final QSTile<?> tile) {
         final TileRecord r = new TileRecord();
         r.tile = tile;
-        r.tileView = tile.createTileView(mContext);
+        r.tileView = createTileView(tile);
         r.tileView.setVisibility(View.GONE);
         final QSTile.Callback callback = new QSTile.Callback() {
             @Override
@@ -369,13 +373,7 @@
         final View.OnClickListener click = new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                r.tile.click();
-            }
-        };
-        final View.OnClickListener clickSecondary = new View.OnClickListener() {
-            @Override
-            public void onClick(View v) {
-                r.tile.secondaryClick();
+                onTileClick(r.tile);
             }
         };
         final View.OnLongClickListener longClick = new View.OnLongClickListener() {
@@ -396,7 +394,7 @@
                 return true;
             }
         };
-        r.tileView.init(click, clickSecondary, longClick);
+        r.tileView.init(click, longClick);
         r.tile.setListening(mListening);
         callback.onStateChanged(r.tile.getState());
         r.tile.refreshState();
@@ -407,6 +405,10 @@
         }
     }
 
+    protected void onTileClick(QSTile<?> tile) {
+        tile.click();
+    }
+
     public boolean isShowingDetail() {
         return mDetailRecord != null
                 || (mCustomizePanel != null && mCustomizePanel.isCustomizing());
@@ -429,7 +431,7 @@
         return mQsContainer.getMeasuredHeight();
     }
 
-    private void handleShowDetail(Record r, boolean show) {
+    protected void handleShowDetail(Record r, boolean show) {
         if (r instanceof TileRecord) {
             handleShowDetailTile((TileRecord) r, show);
         } else {
@@ -560,7 +562,7 @@
         }
     }
 
-    private static class Record {
+    protected static class Record {
         View detailView;
         DetailAdapter detailAdapter;
         int x;