diff options
author | John Spurlock <jspurlock@google.com> | 2014-05-30 12:34:03 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2014-05-30 13:14:16 -0400 |
commit | 3e04cc8c9bcb6daa8f5336934a88dc6c4fdd5221 (patch) | |
tree | 7542b76ab3adc04ccda0d47ca12928e832a4e31c /packages | |
parent | 3bd4feec3d5e5c2432a350b9ae4d7f2d8b8c69d8 (diff) | |
download | frameworks_base-3e04cc8c9bcb6daa8f5336934a88dc6c4fdd5221.zip frameworks_base-3e04cc8c9bcb6daa8f5336934a88dc6c4fdd5221.tar.gz frameworks_base-3e04cc8c9bcb6daa8f5336934a88dc6c4fdd5221.tar.bz2 |
QuickSettings: Maintain tile panel Y in detail mode.
Hide the brightness slider to reduce visual clutter.
Stabilize the tile panel further by preventing it from
shrinking to less than the tiles height.
Bug:15341870
Change-Id: I785ff9c13f8489e86e3bdc8dde45ebd39f9a1413
Diffstat (limited to 'packages')
4 files changed, 20 insertions, 61 deletions
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml index 4aacd4a..e65d9a6 100644 --- a/packages/SystemUI/res/values/dimens.xml +++ b/packages/SystemUI/res/values/dimens.xml @@ -196,9 +196,6 @@ <dimen name="qs_dual_tile_height">109dp</dimen> <dimen name="qs_dual_tile_padding">12dp</dimen> - <!-- How far the hidden header peeks from the top of the screen when QS is in detail mode. --> - <dimen name="qs_header_peek_height">8dp</dimen> - <!-- How far the expanded QS panel peeks from the header in collapsed state. --> <dimen name="qs_peek_height">8dp</dimen> diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java index 6ce0e48..c8cf05d 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QSPanel.java @@ -61,6 +61,7 @@ public class QSPanel extends ViewGroup { mContext = context; mDetail = new FrameLayout(mContext); + mDetail.setBackgroundColor(mContext.getResources().getColor(R.color.system_primary_color)); mDetail.setVisibility(GONE); mDetail.setClickable(true); addView(mDetail); @@ -204,7 +205,7 @@ public class QSPanel extends ViewGroup { mDetail.measure(exactly(width), unspecified()); if (mDetail.getVisibility() == VISIBLE && mDetail.getChildCount() > 0) { final int dmh = mDetail.getMeasuredHeight(); - if (dmh > 0) h = dmh; + if (dmh > 0) h = Math.max(h, dmh); } setMeasuredDimension(width, h); } @@ -231,7 +232,8 @@ public class QSPanel extends ViewGroup { left + record.tileView.getMeasuredWidth(), top + record.tileView.getMeasuredHeight()); } - mDetail.layout(0, 0, mDetail.getMeasuredWidth(), mDetail.getMeasuredHeight()); + final int dh = Math.max(mDetail.getMeasuredHeight(), getMeasuredHeight()); + mDetail.layout(0, 0, mDetail.getMeasuredWidth(), dh); } private int getRowTop(int row) { 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 dce5a30..802e5e5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -34,7 +34,6 @@ import android.view.animation.Interpolator; import android.widget.LinearLayout; import com.android.systemui.R; -import com.android.systemui.qs.QSPanel; import com.android.systemui.statusbar.ExpandableView; import com.android.systemui.statusbar.FlingAnimationUtils; import com.android.systemui.statusbar.GestureRecorder; @@ -52,7 +51,7 @@ public class NotificationPanelView extends PanelView implements PhoneStatusBar mStatusBar; private StatusBarHeaderView mHeader; private View mQsContainer; - private QSPanel mQsPanel; + private View mQsPanel; private View mKeyguardStatusView; private ObservableScrollView mScrollView; private View mStackScrollerContainer; @@ -71,7 +70,6 @@ public class NotificationPanelView extends PanelView implements */ private boolean mIntercepting; private boolean mQsExpanded; - private boolean mQsFullyExpanded; private boolean mKeyguardShowing; private float mInitialHeightOnTouch; private float mInitialTouchX; @@ -83,14 +81,13 @@ public class NotificationPanelView extends PanelView implements private int mQsMaxExpansionHeight; private int mMinStackHeight; private int mQsPeekHeight; - private int mQsHeaderPeekHeight; - private boolean mQsShowingDetail; private float mNotificationTranslation; private int mStackScrollerIntrinsicPadding; private boolean mQsExpansionEnabled = true; private ValueAnimator mQsExpansionAnimator; private FlingAnimationUtils mFlingAnimationUtils; private int mStatusBarMinHeight; + private Interpolator mFastOutSlowInInterpolator; private ObjectAnimator mClockAnimator; private int mClockAnimationTarget = -1; @@ -133,8 +130,7 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusView = findViewById(R.id.keyguard_status_view); mStackScrollerContainer = findViewById(R.id.notification_container_parent); mQsContainer = findViewById(R.id.quick_settings_container); - mQsPanel = (QSPanel) findViewById(R.id.quick_settings_panel); - mQsPanel.setCallback(mQsPanelCallback); + mQsPanel = findViewById(R.id.quick_settings_panel); mScrollView = (ObservableScrollView) findViewById(R.id.scroll_view); mScrollView.setListener(this); mNotificationStackScroller = (NotificationStackScrollLayout) @@ -158,7 +154,6 @@ public class NotificationPanelView extends PanelView implements mStatusBarMinHeight = getResources().getDimensionPixelSize( com.android.internal.R.dimen.status_bar_height); mQsPeekHeight = getResources().getDimensionPixelSize(R.dimen.qs_peek_height); - mQsHeaderPeekHeight = getResources().getDimensionPixelSize(R.dimen.qs_header_peek_height); mClockPositionAlgorithm.loadDimens(getResources()); } @@ -170,9 +165,7 @@ public class NotificationPanelView extends PanelView implements mQsMinExpansionHeight = mHeader.getCollapsedHeight() + mQsPeekHeight; mQsMaxExpansionHeight = mHeader.getExpandedHeight() + mQsContainer.getHeight(); if (mQsExpanded) { - if (mQsFullyExpanded) { - setQsStackScrollerPadding(mQsMaxExpansionHeight); - } + setQsStackScrollerPadding(mQsMaxExpansionHeight); } else { setQsExpansion(mQsMinExpansionHeight); positionClockAndNotifications(); @@ -525,39 +518,10 @@ public class NotificationPanelView extends PanelView implements ? View.INVISIBLE : View.VISIBLE); mScrollView.setTouchEnabled(mQsExpanded); - if (mQsShowingDetail) { - if (mQsFullyExpanded) { - setQsHeaderPeeking(true); - } - } else { - setQsHeaderPeeking(false); - } - } - - private void setQsHeaderPeeking(boolean peeking) { - final boolean stackIsPeeking = mStackScrollerContainer.getTranslationY() != 0; - final boolean headerIsPeeking = mHeader.getTranslationY() != 0; - final int ty = mQsHeaderPeekHeight - mHeader.getExpandedHeight(); - if (peeking) { - if (!headerIsPeeking) { - mHeader.animate().translationY(ty); - } - if (!stackIsPeeking) { - mStackScrollerContainer.animate().translationY(ty); - } - } else { - if (headerIsPeeking) { - mHeader.animate().translationY(0); - } - if (stackIsPeeking) { - mStackScrollerContainer.animate().translationY(0); - } - } } private void setQsExpansion(float height) { height = Math.min(Math.max(height, mQsMinExpansionHeight), mQsMaxExpansionHeight); - mQsFullyExpanded = height == mQsMaxExpansionHeight; if (height > mQsMinExpansionHeight && !mQsExpanded) { setQsExpanded(true); } else if (height <= mQsMinExpansionHeight && mQsExpanded) { @@ -650,16 +614,10 @@ public class NotificationPanelView extends PanelView implements if (!mQsExpansionEnabled) { return false; } - final float ty = mHeader.getTranslationY(); boolean onHeader = x >= mHeader.getLeft() && x <= mHeader.getRight() - && y >= mHeader.getTop() + ty && y <= mHeader.getBottom() + ty; + && y >= mHeader.getTop() && y <= mHeader.getBottom(); if (mQsExpanded) { - if (mQsShowingDetail && onHeader) { - // bring back the header, crudely - setQsHeaderPeeking(false); - mQsPanel.setExpanded(false); - } - return !mQsShowingDetail && onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0); + return onHeader || (mScrollView.isScrolledToBottom() && yDiff < 0); } else { return onHeader; } @@ -823,12 +781,4 @@ public class NotificationPanelView extends PanelView implements public View getRightIcon() { return mKeyguardBottomArea.getCameraImageView(); } - - private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() { - @Override - public void onShowingDetail(boolean showingDetail) { - mQsShowingDetail = showingDetail; - updateQsState(); - } - }; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java index 3245f1a..c097e2d 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -293,5 +293,15 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL public void setQSPanel(QSPanel qsp) { mQSPanel = qsp; + if (mQSPanel != null) { + mQSPanel.setCallback(mQsPanelCallback); + } } + + private final QSPanel.Callback mQsPanelCallback = new QSPanel.Callback() { + @Override + public void onShowingDetail(boolean showingDetail) { + mBrightnessContainer.animate().alpha(showingDetail ? 0 : 1).withLayer().start(); + } + }; } |