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);