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

Commit 75ab96a8 authored by Hall Liu's avatar Hall Liu Committed by android-build-merger
Browse files

Merge "Fix race in TelephonyScanManager" am: 884dd0f5 am: 0c85ca10 am: 8fd8b5b2

am: f67ba767

Change-Id: I321948af64ad9e6299d893647de77ff20d6f1363
parents 6f70d2f9 f67ba767
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -104,7 +104,7 @@ public final class TelephonyScanManager {

    private final Looper mLooper;
    private final Messenger mMessenger;
    private SparseArray<NetworkScanInfo> mScanInfo = new SparseArray<NetworkScanInfo>();
    private final SparseArray<NetworkScanInfo> mScanInfo = new SparseArray<NetworkScanInfo>();

    public TelephonyScanManager() {
        HandlerThread thread = new HandlerThread(TAG);
@@ -204,6 +204,7 @@ public final class TelephonyScanManager {
        try {
            ITelephony telephony = getITelephony();
            if (telephony != null) {
                synchronized (mScanInfo) {
                    int scanId = telephony.requestNetworkScan(
                            subId, request, mMessenger, new Binder(), callingPackage);
                    if (scanId == INVALID_SCAN_ID) {
@@ -213,6 +214,7 @@ public final class TelephonyScanManager {
                    saveScanInfo(scanId, request, executor, callback);
                    return new NetworkScan(scanId, subId);
                }
            }
        } catch (RemoteException ex) {
            Rlog.e(TAG, "requestNetworkScan RemoteException", ex);
        } catch (NullPointerException ex) {
@@ -223,10 +225,8 @@ public final class TelephonyScanManager {

    private void saveScanInfo(
            int id, NetworkScanRequest request, Executor executor, NetworkScanCallback callback) {
        synchronized (mScanInfo) {
        mScanInfo.put(id, new NetworkScanInfo(request, executor, callback));
    }
    }

    private ITelephony getITelephony() {
        return ITelephony.Stub.asInterface(