diff --git a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml index cb861ec0a6e24..b88846b9feed0 100644 --- a/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/quick_status_bar_expanded_header.xml @@ -26,9 +26,6 @@ android:clipChildren="false" android:clipToPadding="false" android:baselineAligned="false" - android:background="@drawable/quick_header_bg" - android:clickable="true" - android:focusable="true" > diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java index 43ebe0493751f..5dd482bbb7447 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java @@ -20,6 +20,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.graphics.Point; +import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.View; @@ -43,6 +44,7 @@ public class QSContainer extends FrameLayout { private static final boolean DEBUG = false; private final Point mSizePoint = new Point(); + private final Rect mQsBounds = new Rect(); private int mHeightOverride = -1; private QSPanel mQSPanel; @@ -226,6 +228,12 @@ public class QSContainer extends FrameLayout { mQSDetail.setFullyExpanded(expansion == 1); mQSAnimator.setPosition(expansion); updateBottom(); + + // Set bounds on the QS panel so it doesn't run over the header. + mQsBounds.top = (int) (mQSPanel.getHeight() * (1 - expansion)); + mQsBounds.right = mQSPanel.getWidth(); + mQsBounds.bottom = mQSPanel.getHeight(); + mQSPanel.setClipBounds(mQsBounds); } public void animateHeaderSlidingIn(long delay) { 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 12035b9314e32..ed1ad90814a36 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -225,7 +225,8 @@ public class NotificationPanelView extends PanelView implements public void onInflated(View v) { mQsContainer = (QSContainer) v.findViewById(R.id.quick_settings_container); mQsContainer.setPanelView(NotificationPanelView.this); - mQsContainer.getHeader().setOnClickListener(NotificationPanelView.this); + mQsContainer.getHeader().findViewById(R.id.expand_indicator) + .setOnClickListener(NotificationPanelView.this); } }); mClockView = (TextView) findViewById(R.id.clock_view); @@ -1758,7 +1759,7 @@ public class NotificationPanelView extends PanelView implements @Override public void onClick(View v) { - if (v == mQsContainer.getHeader()) { + if (v.getId() == R.id.expand_indicator) { onQsExpansionStarted(); if (mQsExpanded) { flingSettings(0 /* vel */, false /* expand */, null, true /* isClick */); 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 8f329c4f270da..8b030a65d240d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickStatusBarHeader.java @@ -124,7 +124,6 @@ public class QuickStatusBarHeader extends BaseStatusBarHeader implements // RenderThread is doing more harm than good when touching the header (to expand quick // settings), so disable it for this view - ((RippleDrawable) getBackground()).setForceSoftware(true); ((RippleDrawable) mSettingsButton.getBackground()).setForceSoftware(true); updateResources();