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

Commit 14b1183a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Check permission before sending batch scan result" into qt-dev

parents 487b1f86 f47a016e
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -1551,6 +1551,15 @@ public class GattService extends ProfileService {
        mScanManager.callbackDone(clientIf, status);
    }

    ScanClient findBatchScanClientById(int scannerId) {
        for (ScanClient client : mScanManager.getBatchScanQueue()) {
            if (client.scannerId == scannerId) {
                return client;
            }
        }
        return null;
    }

    void onBatchScanReports(int status, int scannerId, int reportType, int numRecords,
            byte[] recordData) throws RemoteException {
        if (DBG) {
@@ -1565,6 +1574,17 @@ public class GattService extends ProfileService {
            if (app == null) {
                return;
            }

            ScanClient client = findBatchScanClientById(scannerId);
            if (client == null) {
                return;
            }

            // Do not report if location mode is OFF or the client has no location permission
            if (!hasScanResultPermission(client)) {
                return;
            }

            if (app.callback != null) {
                app.callback.onBatchScanResults(new ArrayList<ScanResult>(results));
            } else {
@@ -1606,6 +1626,12 @@ public class GattService extends ProfileService {
        if (app == null) {
            return;
        }

        // Do not report if location mode is OFF or the client has no location permission
        if (!hasScanResultPermission(client)) {
            return;
        }

        if (client.filters == null || client.filters.isEmpty()) {
            sendBatchScanResults(app, client, new ArrayList<ScanResult>(allResults));
            // TODO: Question to reviewer: Shouldn't there be a return here?