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

Commit 16c54711 authored by Malcolm Chen's avatar Malcolm Chen Committed by android-build-merger
Browse files

Merge "Resolve possible race condition in CellularNetworkService" am: 6f3f4d42 am: 59404be7

am: 89c13761

Change-Id: I54aa4749f48873e98e117b84be8813efba4b041c
parents 6d6712cb 89c13761
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -40,8 +40,7 @@ import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * Implementation of network services for Cellular. It's a service that handles network requests
@@ -59,7 +58,8 @@ public class CellularNetworkService extends NetworkService {

    private class CellularNetworkServiceProvider extends NetworkServiceProvider {

        private final Map<Message, NetworkServiceCallback> mCallbackMap = new HashMap<>();
        private final ConcurrentHashMap<Message, NetworkServiceCallback> mCallbackMap =
                new ConcurrentHashMap<>();

        private final Looper mLooper;

@@ -315,18 +315,17 @@ public class CellularNetworkService extends NetworkService {

            if (domain == NetworkRegistrationState.DOMAIN_CS) {
                message = Message.obtain(mHandler, GET_CS_REGISTRATION_STATE_DONE);
                mCallbackMap.put(message, callback);
                mPhone.mCi.getVoiceRegistrationState(message);
            } else if (domain == NetworkRegistrationState.DOMAIN_PS) {
                message = Message.obtain(mHandler, GET_PS_REGISTRATION_STATE_DONE);
                mCallbackMap.put(message, callback);
                mPhone.mCi.getDataRegistrationState(message);
            } else {
                loge("getNetworkRegistrationState invalid domain " + domain);
                callback.onGetNetworkRegistrationStateComplete(
                        NetworkServiceCallback.RESULT_ERROR_INVALID_ARG, null);
                return;
            }

            mCallbackMap.put(message, callback);
        }

        @CallSuper