Merge "Fix race in TelephonyScanManager"
am: 884dd0f559
Change-Id: If79d695c2bdb83cf7c902bc540da5b8b427268f4
This commit is contained in:
@@ -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,14 +204,16 @@ public final class TelephonyScanManager {
|
||||
try {
|
||||
ITelephony telephony = getITelephony();
|
||||
if (telephony != null) {
|
||||
int scanId = telephony.requestNetworkScan(
|
||||
subId, request, mMessenger, new Binder(), callingPackage);
|
||||
if (scanId == INVALID_SCAN_ID) {
|
||||
Rlog.e(TAG, "Failed to initiate network scan");
|
||||
return null;
|
||||
synchronized (mScanInfo) {
|
||||
int scanId = telephony.requestNetworkScan(
|
||||
subId, request, mMessenger, new Binder(), callingPackage);
|
||||
if (scanId == INVALID_SCAN_ID) {
|
||||
Rlog.e(TAG, "Failed to initiate network scan");
|
||||
return null;
|
||||
}
|
||||
saveScanInfo(scanId, request, executor, callback);
|
||||
return new NetworkScan(scanId, subId);
|
||||
}
|
||||
saveScanInfo(scanId, request, executor, callback);
|
||||
return new NetworkScan(scanId, subId);
|
||||
}
|
||||
} catch (RemoteException ex) {
|
||||
Rlog.e(TAG, "requestNetworkScan RemoteException", ex);
|
||||
@@ -223,9 +225,7 @@ 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));
|
||||
}
|
||||
mScanInfo.put(id, new NetworkScanInfo(request, executor, callback));
|
||||
}
|
||||
|
||||
private ITelephony getITelephony() {
|
||||
|
||||
Reference in New Issue
Block a user