diff --git a/packages/SystemUI/res/drawable/qs_navbar_scrim.xml b/packages/SystemUI/res/drawable/qs_navbar_scrim.xml new file mode 100644 index 0000000000000..bbb2617db4a02 --- /dev/null +++ b/packages/SystemUI/res/drawable/qs_navbar_scrim.xml @@ -0,0 +1,25 @@ + + + + + + + \ No newline at end of file diff --git a/packages/SystemUI/res/layout/status_bar_expanded.xml b/packages/SystemUI/res/layout/status_bar_expanded.xml index 53a832aa9994e..fa1077b8624cb 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded.xml @@ -115,4 +115,12 @@ layout="@layout/keyguard_bottom_area" android:visibility="gone" /> + + 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 98bb5918e66f9..fa2e361507f52 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -69,6 +69,7 @@ public class NotificationPanelView extends PanelView implements private TextView mClockView; private View mReserveNotificationSpace; private MirrorView mSystemIconsCopy; + private View mQsNavbarScrim; private NotificationStackScrollLayout mNotificationStackScroller; private int mNotificationTopPadding; @@ -149,6 +150,8 @@ public class NotificationPanelView extends PanelView implements private boolean mShadeEmpty; + private boolean mQsScrimEnabled = true; + public NotificationPanelView(Context context, AttributeSet attrs) { super(context, attrs); mSystemIconsCopy = new MirrorView(context); @@ -183,6 +186,7 @@ public class NotificationPanelView extends PanelView implements mLinearOutSlowInInterpolator = AnimationUtils.loadInterpolator(getContext(), android.R.interpolator.linear_out_slow_in); mKeyguardBottomArea = (KeyguardBottomAreaView) findViewById(R.id.keyguard_bottom_area); + mQsNavbarScrim = findViewById(R.id.qs_navbar_scrim); mAfforanceHelper = new KeyguardAffordanceHelper(this, getContext()); } @@ -882,6 +886,10 @@ public class NotificationPanelView extends PanelView implements mKeyguardShowing && !expandVisually ? View.INVISIBLE : View.VISIBLE); mScrollView.setTouchEnabled(mQsExpanded); updateEmptyShadeView(); + mQsNavbarScrim.setVisibility(mStatusBarState == StatusBarState.SHADE && mQsExpanded + && !mStackScrollerOverscrolling && mQsScrimEnabled + ? View.VISIBLE + : View.INVISIBLE); } private void setQsExpansion(float height) { @@ -908,6 +916,10 @@ public class NotificationPanelView extends PanelView implements mKeyguardStatusBar.setAlpha(alpha); } } + if (mStatusBarState == StatusBarState.SHADE && mQsExpanded + && !mStackScrollerOverscrolling && mQsScrimEnabled) { + mQsNavbarScrim.setAlpha(getQsExpansionFraction()); + } } private void updateNotificationScrim(float height) { @@ -1629,4 +1641,12 @@ public class NotificationPanelView extends PanelView implements // Hide "No notifications" in QS. mNotificationStackScroller.updateEmptyShadeView(mShadeEmpty && !mQsExpanded); } + + public void setQsScrimEnabled(boolean qsScrimEnabled) { + boolean changed = mQsScrimEnabled != qsScrimEnabled; + mQsScrimEnabled = qsScrimEnabled; + if (changed) { + updateQsState(); + } + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index e7a9779c03ad9..b089177376877 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -650,6 +650,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, if (mSearchPanelView != null) { mSearchPanelView.setHorizontal(isVertical); } + mNotificationPanel.setQsScrimEnabled(!isVertical); } }); mNavigationBarView.setOnTouchListener(new View.OnTouchListener() {