diff --git a/packages/CarSystemUI/res/values/config.xml b/packages/CarSystemUI/res/values/config.xml index d946fbc9520ad..467c4a41893d3 100644 --- a/packages/CarSystemUI/res/values/config.xml +++ b/packages/CarSystemUI/res/values/config.xml @@ -29,6 +29,9 @@ false true + + true + true false diff --git a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java index 16b01252fb812..a07bb8fa3d388 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java @@ -165,6 +165,8 @@ public class CarStatusBar extends StatusBar implements private boolean mIsNotificationCardSwiping; // If notification shade is being swiped vertically to close. private boolean mIsSwipingVerticallyToClose; + // Whether heads-up notifications should be shown when shade is open. + private boolean mEnableHeadsUpNotificationWhenNotificationShadeOpen; private final CarPowerStateListener mCarPowerStateListener = (int state) -> { @@ -459,6 +461,8 @@ public class CarStatusBar extends StatusBar implements } }); + mEnableHeadsUpNotificationWhenNotificationShadeOpen = mContext.getResources().getBoolean( + R.bool.config_enableHeadsUpNotificationWhenNotificationShadeOpen); CarHeadsUpNotificationManager carHeadsUpNotificationManager = new CarSystemUIHeadsUpNotificationManager(mContext, mNotificationClickHandlerFactory, mNotificationDataManager); @@ -1272,12 +1276,19 @@ public class CarStatusBar extends StatusBar implements mHeadsUpPanel.setVisibility(View.INVISIBLE); } + @Override + protected void setInternalInsetsInfo(ViewTreeObserver.InternalInsetsInfo info, + HeadsUpEntry currentNotification, boolean panelExpanded) { + super.setInternalInsetsInfo(info, currentNotification, mPanelExpanded); + } + @Override protected void setHeadsUpVisible() { // if the Notifications panel is showing don't show the Heads up - if (mPanelExpanded) { + if (!mEnableHeadsUpNotificationWhenNotificationShadeOpen && mPanelExpanded) { return; } + super.setHeadsUpVisible(); if (mHeadsUpPanel.getVisibility() == View.VISIBLE) { mStatusBarWindowController.setHeadsUpShowing(true);