summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2014-05-30 12:34:03 -0400
committerJohn Spurlock <jspurlock@google.com>2014-05-30 13:14:16 -0400
commit3e04cc8c9bcb6daa8f5336934a88dc6c4fdd5221 (patch)
tree7542b76ab3adc04ccda0d47ca12928e832a4e31c /packages
parent3bd4feec3d5e5c2432a350b9ae4d7f2d8b8c69d8 (diff)
downloadframeworks_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')
-rw-r--r--packages/SystemUI/res/values/dimens.xml3
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/QSPanel.java6
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java62
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java10
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();
+ }
+ };
}