Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef6ee67b authored by Jack He's avatar Jack He Committed by Automerger Merge Worker
Browse files

Merge "HeadsetPhoneState: Synchronize startListenForPhoneState to prevent race...

Merge "HeadsetPhoneState: Synchronize startListenForPhoneState to prevent race condition" am: ffdcb1c0 am: ae014045 am: b5db40e5 am: 5498e937

Original change: https://android-review.googlesource.com/c/platform/packages/modules/Bluetooth/+/2075220



Change-Id: I8d451bd2570774e3a49f9c7e401794947667d9dd
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 164a1827 5498e937
Loading
Loading
Loading
Loading
+33 −28
Original line number Diff line number Diff line
@@ -73,6 +73,7 @@ public class HeadsetPhoneState {
    private PhoneStateListener mPhoneStateListener;
    private final OnSubscriptionsChangedListener mOnSubscriptionsChangedListener;
    private SignalStrengthUpdateRequest mSignalStrengthUpdateRequest;
    private final Object mPhoneStateListenerLock = new Object();

    HeadsetPhoneState(HeadsetService headsetService) {
        Objects.requireNonNull(headsetService, "headsetService is null");
@@ -145,6 +146,7 @@ public class HeadsetPhoneState {
    }

    private void startListenForPhoneState() {
        synchronized (mPhoneStateListenerLock) {
            if (mPhoneStateListener != null) {
                Log.w(TAG, "startListenForPhoneState, already listening");
                return;
@@ -167,8 +169,10 @@ public class HeadsetPhoneState {
                mTelephonyManager.setSignalStrengthUpdateRequest(mSignalStrengthUpdateRequest);
            }
        }
    }

    private void stopListenForPhoneState() {
        synchronized (mPhoneStateListenerLock) {
            if (mPhoneStateListener == null) {
                Log.i(TAG, "stopListenForPhoneState(), no listener indicates nothing is listening");
                return;
@@ -179,6 +183,7 @@ public class HeadsetPhoneState {
            mPhoneStateListener = null;
            mTelephonyManager.clearSignalStrengthUpdateRequest(mSignalStrengthUpdateRequest);
        }
    }

    int getCindService() {
        return mCindService;