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

Commit a93e4124 authored by yinxu's avatar yinxu Committed by android-build-merger
Browse files

Merge "Use AsyncTask.SERIAL_EXECUTOR as the default executor for scan"

am: cdbf9308

Change-Id: Icd89a86250d28c271f0a3ba2dc1553b313ace646
parents 4061a9f3 cdbf9308
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -5425,7 +5425,10 @@ public class TelephonyManager {
     * app has carrier privileges (see {@link #hasCarrierPrivileges}).
     *
     * @param request Contains all the RAT with bands/channels that need to be scanned.
     * @param executor The executor through which the callback should be invoked.
     * @param executor The executor through which the callback should be invoked. Since the scan
     *        request may trigger multiple callbacks and they must be invoked in the same order as
     *        they are received by the platform, the user should provide an executor which executes
     *        tasks one at a time in serial order. For example AsyncTask.SERIAL_EXECUTOR.
     * @param callback Returns network scan results or errors.
     * @return A NetworkScan obj which contains a callback which can be used to stop the scan.
     */
@@ -5451,7 +5454,7 @@ public class TelephonyManager {
    @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
    public NetworkScan requestNetworkScan(
        NetworkScanRequest request, TelephonyScanManager.NetworkScanCallback callback) {
        return requestNetworkScan(request, AsyncTask.THREAD_POOL_EXECUTOR, callback);
        return requestNetworkScan(request, AsyncTask.SERIAL_EXECUTOR, callback);
    }

    /**
+12 −4
Original line number Diff line number Diff line
@@ -137,8 +137,10 @@ public final class TelephonyScanManager {
                            for (int i = 0; i < parcelables.length; i++) {
                                ci[i] = (CellInfo) parcelables[i];
                            }
                            executor.execute(() ->
                                    callback.onResults((List<CellInfo>) Arrays.asList(ci)));
                            executor.execute(() ->{
                                Rlog.d(TAG, "onResults: " + ci.toString());
                                callback.onResults((List<CellInfo>) Arrays.asList(ci));
                            });
                        } catch (Exception e) {
                            Rlog.e(TAG, "Exception in networkscan callback onResults", e);
                        }
@@ -146,14 +148,20 @@ public final class TelephonyScanManager {
                    case CALLBACK_SCAN_ERROR:
                        try {
                            final int errorCode = message.arg1;
                            executor.execute(() -> callback.onError(errorCode));
                            executor.execute(() -> {
                                Rlog.d(TAG, "onError: " + errorCode);
                                callback.onError(errorCode);
                            });
                        } catch (Exception e) {
                            Rlog.e(TAG, "Exception in networkscan callback onError", e);
                        }
                        break;
                    case CALLBACK_SCAN_COMPLETE:
                        try {
                            executor.execute(() -> callback.onComplete());
                            executor.execute(() -> {
                                Rlog.d(TAG, "onComplete");
                                callback.onComplete();
                            });
                            mScanInfo.remove(message.arg2);
                        } catch (Exception e) {
                            Rlog.e(TAG, "Exception in networkscan callback onComplete", e);