diff options
| author | 2020-05-01 10:19:14 -0400 | |
|---|---|---|
| committer | 2020-05-01 10:19:14 -0400 | |
| commit | 9ebcda07be8962cb4fdb4e06d44535c68e2bcc0b (patch) | |
| tree | eda14dfd074823a7370cf254a389f6c4b5b629bb | |
| parent | 8e47f58e6bbeaa3f3f75d88562e7849202beea51 (diff) | |
Remove observer when QSBH is detached
When QuickStatusBarHeader is detached (for example, when QSFragment is
destroyed) remove the LiveData observer.
Test: ahat, after dark mode (triggers re-inflate), there's only one QSBH
observer
Fixes: 155425341
Change-Id: Ic92367ea786228dfefb9808d9cad7d73197b4967
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java index 90dc38f3ad12..b15c6a3e3b59 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java +++ b/packages/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java @@ -138,6 +138,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements private Clock mClockView; private DateView mDateView; private BatteryMeterView mBatteryRemainingIcon; + private RingerModeTracker mRingerModeTracker; // Used for RingerModeTracker private final LifecycleRegistry mLifecycle = new LifecycleRegistry(this); @@ -159,10 +160,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements mDualToneHandler = new DualToneHandler( new ContextThemeWrapper(context, R.style.QSHeaderTheme)); mCommandQueue = commandQueue; - ringerModeTracker.getRingerModeInternal().observe(this, ringer -> { - mRingerMode = ringer; - updateStatusText(); - }); + mRingerModeTracker = ringerModeTracker; } @Override @@ -429,6 +427,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements @Override public void onAttachedToWindow() { super.onAttachedToWindow(); + mRingerModeTracker.getRingerModeInternal().observe(this, ringer -> { + mRingerMode = ringer; + updateStatusText(); + }); mStatusBarIconController.addIconGroup(mIconManager); requestApplyInsets(); } @@ -466,6 +468,7 @@ public class QuickStatusBarHeader extends RelativeLayout implements @VisibleForTesting public void onDetachedFromWindow() { setListening(false); + mRingerModeTracker.getRingerModeInternal().removeObservers(this); mStatusBarIconController.removeIconGroup(mIconManager); super.onDetachedFromWindow(); } |