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

Commit b5db40e5 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

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



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


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


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


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


    int getCindService() {
    int getCindService() {
        return mCindService;
        return mCindService;