Unregister StatusBarStateListeners from notifs

Test: manual
Fixes: 167384190
Change-Id: Id10865b779170ed7f21c589eaabbf692594b2b20
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
index 05d9fe7..1d72557 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java
@@ -145,13 +145,6 @@
                 mOnUserInteractionCallback
 
         );
-        mStatusBarStateController.addCallback(new StatusBarStateController.StateListener() {
-            @Override
-            public void onStateChanged(int newState) {
-                mView.setOnKeyguard(newState == KEYGUARD);
-            }
-        });
-        mView.setOnKeyguard(mStatusBarStateController.getState() == KEYGUARD);
         mView.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
         if (mAllowLongPress) {
             mView.setLongPressListener((v, x, y, item) -> {
@@ -172,15 +165,26 @@
                 mView.getEntry().setInitializationTime(mClock.elapsedRealtime());
                 mPluginManager.addPluginListener(mView,
                         NotificationMenuRowPlugin.class, false /* Allow multiple */);
+                mView.setOnKeyguard(mStatusBarStateController.getState() == KEYGUARD);
+                mStatusBarStateController.addCallback(mStatusBarStateListener);
             }
 
             @Override
             public void onViewDetachedFromWindow(View v) {
                 mPluginManager.removePluginListener(mView);
+                mStatusBarStateController.removeCallback(mStatusBarStateListener);
             }
         });
     }
 
+    private final StatusBarStateController.StateListener mStatusBarStateListener =
+            new StatusBarStateController.StateListener() {
+                @Override
+                public void onStateChanged(int newState) {
+                    mView.setOnKeyguard(newState == KEYGUARD);
+                }
+            };
+
     private void logNotificationExpansion(String key, boolean userAction, boolean expanded) {
         mNotificationLogger.onExpansionChanged(key, userAction, expanded);
     }