QS: Only allow clicking in the expand button

Also ditch the header BG so the panel can feel like one surface, as
a result need to set some clip bounds on the QSPanel to avoid some
collisions between the header and QS.

Bug: 27881430
Change-Id: Ia78c5b8a7a90bd02b97fa448efa06fc056f624ef
This commit is contained in:
Jason Monk
2016-03-29 16:29:39 -04:00
parent 0c6e099482
commit f7d9c49223
4 changed files with 15 additions and 6 deletions

View File

@@ -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>

View File

@@ -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) {

View File

@@ -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 */);

View File

@@ -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();