summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eric Berglund <ericberglund@google.com> 2020-02-10 12:35:29 -0800
committer Eric Berglund <ericberglund@google.com> 2020-02-19 10:11:02 -0800
commitcbfe702556fea02b6a2d467419cb719274c154fc (patch)
tree99ae9056402d20fbe74ced67ccaae25e950219ad
parent5a846ed2373aea2d9c3656739871f632286fa25f (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.java34
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);