diff options
| author | 2020-02-10 12:35:29 -0800 | |
|---|---|---|
| committer | 2020-02-19 10:11:02 -0800 | |
| commit | cbfe702556fea02b6a2d467419cb719274c154fc (patch) | |
| tree | 99ae9056402d20fbe74ced67ccaae25e950219ad | |
| parent | 5a846ed2373aea2d9c3656739871f632286fa25f (diff) | |
DO NOT MERGE Hold onto NotificationListener when reconnecting notifications UI.
Bug: 149342387
Test: manual
Change-Id: I1bc4046ce1e6792699eaa87b9d50cfaa231e806f
| -rw-r--r-- | packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java | 34 |
1 files changed, 15 insertions, 19 deletions
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 e0f398742ebc..4b4b73dae91e 100644 --- a/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +++ b/packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java @@ -41,7 +41,6 @@ import android.os.Build; import android.os.Handler; import android.os.IBinder; import android.os.Looper; -import android.os.RemoteException; import android.util.Log; import android.view.Display; import android.view.GestureDetector; @@ -645,20 +644,22 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt } }); - if (mCarNotificationListener != null) { - try { - // If we already had a notification listener we need to unreigster is before - // making a new one - mCarNotificationListener.unregisterAsSystemService(); - } catch (RemoteException e) { - Log.e(TAG, "Error unregistering notification listener."); - } - } - - mCarNotificationListener = new CarNotificationListener(); mCarUxRestrictionManagerWrapper = new CarUxRestrictionManagerWrapper(); - mNotificationDataManager = new NotificationDataManager(); + if (mCarNotificationListener == null) { + // Only make and register a listener if we don't already have one since + // #connectNotificationsUI can be called multiple times on locale change. + mCarNotificationListener = new CarNotificationListener(); + mNotificationDataManager = new NotificationDataManager(); + + CarHeadsUpNotificationManager carHeadsUpNotificationManager = + new CarSystemUIHeadsUpNotificationManager(mContext, + mNotificationClickHandlerFactory, mNotificationDataManager); + mCarNotificationListener.registerAsSystemService(mContext, + mCarUxRestrictionManagerWrapper, + carHeadsUpNotificationManager, mNotificationDataManager); + } + mNotificationDataManager.setOnUnseenCountUpdateListener(() -> { if (mNavigationBarView != null && mNotificationDataManager != null) { onUseenCountUpdate(mNotificationDataManager.getUnseenNotificationCount()); @@ -667,13 +668,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt mEnableHeadsUpNotificationWhenNotificationShadeOpen = mContext.getResources().getBoolean( R.bool.config_enableHeadsUpNotificationWhenNotificationShadeOpen); - CarHeadsUpNotificationManager carHeadsUpNotificationManager = - new CarSystemUIHeadsUpNotificationManager(mContext, - mNotificationClickHandlerFactory, mNotificationDataManager); - mNotificationClickHandlerFactory.setNotificationDataManager(mNotificationDataManager); - mCarNotificationListener.registerAsSystemService(mContext, mCarUxRestrictionManagerWrapper, - carHeadsUpNotificationManager, mNotificationDataManager); + mNotificationClickHandlerFactory.setNotificationDataManager(mNotificationDataManager); mNotificationView = mStatusBarWindow.findViewById(R.id.notification_view); View glassPane = mStatusBarWindow.findViewById(R.id.glass_pane); |