Merge "Fix race in TelephonyScanManager" am: 884dd0f559 am: 0c85ca1062
am: 8fd8b5b234
Change-Id: I21ba7e6502e06064a443a701b1953d3dff60b653
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