diff options
4 files changed, 15 insertions, 6 deletions
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 cb861ec0a6e2..b88846b9feed 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" > <LinearLayout @@ -83,6 +80,10 @@ android:id="@+id/expand_indicator" android:layout_width="48dp" android:layout_height="48dp" + android:clipToPadding="false" + android:clickable="true" + android:focusable="true" + android:background="?android:attr/selectableItemBackgroundBorderless" android:padding="12dp" /> </LinearLayout> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java b/packages/SystemUI/src/com/android/systemui/qs/QSContainer.java index 43ebe0493751..5dd482bbb744 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 023c4d07d708..45e94f7d5d7f 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); @@ -1760,7 +1761,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 8f329c4f270d..8b030a65d240 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(); |