Factor out keyguard components of StatusBarHeaderView
Make the header on keyguard a separate view, and move all Keyguard
components from StatusBarHeader into KeyguardHeaderView.
Change-Id: I1e2400d5c91898df3824fd8f27b10750d576a62c
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 cccfb7b..e7e18cf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -60,6 +60,7 @@
private KeyguardAffordanceHelper mAfforanceHelper;
private StatusBarHeaderView mHeader;
+ private KeyguardStatusBarView mKeyguardStatusBar;
private View mQsContainer;
private QSPanel mQsPanel;
private View mKeyguardStatusView;
@@ -153,6 +154,7 @@
super.onFinishInflate();
mHeader = (StatusBarHeaderView) findViewById(R.id.header);
mHeader.setOnClickListener(this);
+ mKeyguardStatusBar = (KeyguardStatusBarView) findViewById(R.id.keyguard_header);
mKeyguardStatusView = findViewById(R.id.keyguard_status_view);
mQsContainer = findViewById(R.id.quick_settings_container);
mQsPanel = (QSPanel) findViewById(R.id.quick_settings_panel);
@@ -196,8 +198,7 @@
// Update Clock Pivot
mKeyguardStatusView.setPivotX(getWidth() / 2);
- mKeyguardStatusView.setPivotY(
- (FONT_HEIGHT - CAP_HEIGHT) / 2048f * mClockView.getTextSize());
+ mKeyguardStatusView.setPivotY((FONT_HEIGHT - CAP_HEIGHT) / 2048f * mClockView.getTextSize());
// Calculate quick setting heights.
mQsMinExpansionHeight = mHeader.getCollapsedHeight() + mQsPeekHeight;
@@ -223,10 +224,11 @@
private void positionClockAndNotifications() {
boolean animate = mNotificationStackScroller.isAddOrRemoveAnimationPending();
int stackScrollerPadding;
- if (mStatusBar.getBarState() != StatusBarState.KEYGUARD) {
+ if (mStatusBarState != StatusBarState.KEYGUARD) {
int bottom = mHeader.getCollapsedHeight();
- stackScrollerPadding = bottom + mQsPeekHeight
- + mNotificationTopPadding;
+ stackScrollerPadding = mStatusBarState == StatusBarState.SHADE
+ ? bottom + mQsPeekHeight + mNotificationTopPadding
+ : mKeyguardStatusBar.getHeight() + mNotificationTopPadding;
mTopPaddingAdjustment = 0;
} else {
mClockPositionAlgorithm.setup(
@@ -671,6 +673,7 @@
public void setBarState(int statusBarState) {
boolean keyguardShowing = statusBarState == StatusBarState.KEYGUARD
|| statusBarState == StatusBarState.SHADE_LOCKED;
+ mKeyguardStatusBar.setVisibility(keyguardShowing ? View.VISIBLE : View.INVISIBLE);
if (!mKeyguardShowing && keyguardShowing) {
setQsTranslation(mQsExpansionHeight);
mHeader.setTranslationY(0f);
@@ -682,9 +685,11 @@
private void updateQsState() {
boolean expandVisually = mQsExpanded || mStackScrollerOverscrolling;
- mHeader.setExpanded(expandVisually, mStackScrollerOverscrolling);
- mNotificationStackScroller.setScrollingEnabled(mStatusBarState != StatusBarState.KEYGUARD
- && (!mQsExpanded || mQsExpansionFromOverscroll));
+ mHeader.setVisibility((mQsExpanded || !mKeyguardShowing) ? View.VISIBLE : View.INVISIBLE);
+ mHeader.setExpanded(mQsExpanded && !mStackScrollerOverscrolling);
+ mNotificationStackScroller.setScrollingEnabled(
+ mStatusBarState != StatusBarState.KEYGUARD && (!mQsExpanded
+ || mQsExpansionFromOverscroll));
mQsPanel.setVisibility(expandVisually ? View.VISIBLE : View.INVISIBLE);
mQsContainer.setVisibility(
mKeyguardShowing && !expandVisually ? View.INVISIBLE : View.VISIBLE);
@@ -993,7 +998,6 @@
}
private void updateHeaderShade() {
- mHeader.setAlpha(1f);
mHeader.setTranslationY(getHeaderTranslation());
setQsTranslation(mQsExpansionHeight);
}
@@ -1014,7 +1018,6 @@
}
private void updateHeaderKeyguard() {
- mHeader.setTranslationY(0f);
float alpha;
if (mStatusBar.getBarState() == StatusBarState.KEYGUARD) {
@@ -1032,7 +1035,7 @@
}
alpha = Math.max(0, Math.min(alpha, 1));
alpha = (float) Math.pow(alpha, 0.75);
- mHeader.setAlpha(alpha);
+ mKeyguardStatusBar.setAlpha(alpha);
mKeyguardBottomArea.setAlpha(alpha);
setQsTranslation(mQsExpansionHeight);
}
@@ -1062,21 +1065,24 @@
mIsExpanding = false;
mScrollYOverride = -1;
if (mExpandedHeight == 0f) {
- mHeader.setListening(false);
- mQsPanel.setListening(false);
+ setListening(false);
} else {
- mHeader.setListening(true);
- mQsPanel.setListening(true);
+ setListening(true);
}
mTwoFingerQsExpand = false;
mTwoFingerQsExpandPossible = false;
}
+ private void setListening(boolean listening) {
+ mHeader.setListening(listening);
+ mKeyguardStatusBar.setListening(listening);
+ mQsPanel.setListening(listening);
+ }
+
@Override
public void instantExpand() {
super.instantExpand();
- mHeader.setListening(true);
- mQsPanel.setListening(true);
+ setListening(true);
}
@Override