Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19f5398e authored by Heemin Seog's avatar Heemin Seog
Browse files

DO NOT MERGE Rearrange listener logic so it can be overriden

Bug: 144567659
Test: build, manual
Change-Id: I81a5e0c169b0d916a3f86bfc4d63fffd3eb225af
parent 599634a2
Loading
Loading
Loading
Loading
+24 −18
Original line number Diff line number Diff line
@@ -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
     */