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

Commit 884dd0f5 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Fix race in TelephonyScanManager"

parents b6a549d9 418e7798
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(