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

Commit 59404be7 authored by Malcolm Chen's avatar Malcolm Chen Committed by android-build-merger
Browse files

Merge "Resolve possible race condition in CellularNetworkService"

am: 6f3f4d42

Change-Id: Ife735b4b30765ac3fca87d92d49d7cfa1e953894
parents b1634ad8 6f3f4d42
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