From c35d18f7d0bf9e2cd4bfe2912485be1d88b9e755 Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Tue, 9 Nov 2021 08:39:57 -0500 Subject: [PATCH] Add wakefullness calls on main thread To avoid the possibility of modifying an ArrayList on multiple threads Fixes: 203128669 Test: manual Change-Id: I4da5897d1fa15669e8f4292a780b623457bf20b8 --- .../src/com/android/keyguard/CarrierTextManager.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java b/packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java index cfef6cb399ed9..907943a9203d0 100644 --- a/packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java +++ b/packages/SystemUI/src/com/android/keyguard/CarrierTextManager.java @@ -261,8 +261,10 @@ public class CarrierTextManager { mCarrierTextCallback = callback; if (mNetworkSupported.get()) { // Keyguard update monitor expects callbacks from main thread - mMainExecutor.execute(() -> mKeyguardUpdateMonitor.registerCallback(mCallback)); - mWakefulnessLifecycle.addObserver(mWakefulnessObserver); + mMainExecutor.execute(() -> { + mKeyguardUpdateMonitor.registerCallback(mCallback); + mWakefulnessLifecycle.addObserver(mWakefulnessObserver); + }); mTelephonyListenerManager.addActiveDataSubscriptionIdListener(mPhoneStateListener); } else { // Don't listen and clear out the text when the device isn't a phone. @@ -272,8 +274,10 @@ public class CarrierTextManager { } } else { mCarrierTextCallback = null; - mMainExecutor.execute(() -> mKeyguardUpdateMonitor.removeCallback(mCallback)); - mWakefulnessLifecycle.removeObserver(mWakefulnessObserver); + mMainExecutor.execute(() -> { + mKeyguardUpdateMonitor.removeCallback(mCallback); + mWakefulnessLifecycle.removeObserver(mWakefulnessObserver); + }); mTelephonyListenerManager.removeActiveDataSubscriptionIdListener(mPhoneStateListener); } }