sysui: refactor for extensibility.

Extended QSDetail / QSTile to control the behavior with
header / footer.

Bug: 28169547
Change-Id: Ice7d5fc16a0e9080a5c842295abe87bc1e2d71be
(cherry picked from commit dbdcb44b7fa49931fc506535a4cc02c20085bca5)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 7e2fa2d..12b8b91 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -955,7 +955,7 @@
         onQsExpansionStarted(0);
     }
 
-    private void onQsExpansionStarted(int overscrollAmount) {
+    protected void onQsExpansionStarted(int overscrollAmount) {
         cancelQsAnimation();
         cancelHeightAnimator();
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
index 4a8d27f..06f107b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java
@@ -73,7 +73,7 @@
     private boolean mListening;
     private AlarmManager.AlarmClockInfo mNextAlarm;
 
-    private QuickQSPanel mHeaderQsPanel;
+    protected QuickQSPanel mHeaderQsPanel;
     private boolean mShowEmergencyCallsOnly;
     protected MultiUserSwitch mMultiUserSwitch;
     private ImageView mMultiUserAvatar;