Merge "DO NOT MERGE Rearrange listener logic so it can be overriden" into qt-qpr1-dev

This commit is contained in:
Heemin Seog
2019-11-20 22:27:44 +00:00
committed by Android (Google) Code Review

View File

@@ -546,24 +546,7 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
mCarUxRestrictionManagerWrapper = new CarUxRestrictionManagerWrapper();
mNotificationDataManager = new NotificationDataManager();
mNotificationDataManager.setOnUnseenCountUpdateListener(
() -> {
if (mNavigationBarView != null && mNotificationDataManager != null) {
Boolean hasUnseen =
mNotificationDataManager.getUnseenNotificationCount() > 0;
if (mNavigationBarView != null) {
mNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
if (mLeftNavigationBarView != null) {
mLeftNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
if (mRightNavigationBarView != null) {
mRightNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
}
});
mNotificationDataManager.setOnUnseenCountUpdateListener(this::onUnseenCountUpdate);
mEnableHeadsUpNotificationWhenNotificationShadeOpen = mContext.getResources().getBoolean(
R.bool.config_enableHeadsUpNotificationWhenNotificationShadeOpen);
@@ -688,6 +671,29 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
});
}
/**
* This method is called whenever there is an update to the number of unseen notifications.
* This method can be extended by OEMs to customize the desired logic.
*/
protected void onUnseenCountUpdate() {
if (mNavigationBarView != null && mNotificationDataManager != null) {
Boolean hasUnseen =
mNotificationDataManager.getUnseenNotificationCount() > 0;
if (mNavigationBarView != null) {
mNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
if (mLeftNavigationBarView != null) {
mLeftNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
if (mRightNavigationBarView != null) {
mRightNavigationBarView.toggleNotificationUnseenIndicator(hasUnseen);
}
}
}
/**
* @return true if the notification panel is currently visible
*/