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

Commit fcdb8bd4 authored by Ajay Panicker's avatar Ajay Panicker Committed by Gerrit Code Review
Browse files

Merge "Mark background and opportunistic scans in scan statistics"

parents ac9407b0 45c63dde
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
 */
package com.android.bluetooth.gatt;

import android.bluetooth.le.ScanSettings;
import android.content.Context;
import android.os.Binder;
import android.os.IBinder;
@@ -63,6 +64,8 @@ import com.android.bluetooth.btservice.BluetoothProto;
        int scansStopped = 0;
        boolean isScanning = false;
        boolean isRegistered = false;
        boolean isOpportunisticScan = false;
        boolean isBackgroundScan = false;
        long minScanTime = Long.MAX_VALUE;
        long maxScanTime = 0;
        long totalScanTime = 0;
@@ -75,10 +78,14 @@ import com.android.bluetooth.btservice.BluetoothProto;
            appName = name;
        }

        void startScan() {
        void recordScanStart(ScanSettings settings) {
            this.scansStarted++;
            isScanning = true;
            startTime = System.currentTimeMillis();
            if (settings != null) {
                isOpportunisticScan = settings.getScanMode() == ScanSettings.SCAN_MODE_OPPORTUNISTIC;
                isBackgroundScan = (settings.getCallbackType() & ScanSettings.CALLBACK_TYPE_FIRST_MATCH) != 0;
            }

            BluetoothProto.ScanEvent scanEvent = new BluetoothProto.ScanEvent();
            scanEvent.setScanEventType(BluetoothProto.ScanEvent.SCAN_EVENT_START);
@@ -98,12 +105,15 @@ import com.android.bluetooth.btservice.BluetoothProto;
            }
        }

        void stopScan() {
        void recordScanStop() {
            this.scansStopped++;
            isScanning = false;
            stopTime = System.currentTimeMillis();
            long currTime = stopTime - startTime;

            isOpportunisticScan = false;
            isBackgroundScan = false;

            minScanTime = Math.min(currTime, minScanTime);
            maxScanTime = Math.max(currTime, maxScanTime);
            totalScanTime += currTime;
@@ -499,6 +509,8 @@ import com.android.bluetooth.btservice.BluetoothProto;

            sb.append("  " + name);
            if (scanStats.isRegistered) sb.append(" (Registered)");
            if (scanStats.isOpportunisticScan) sb.append(" (Opportunistic)");
            if (scanStats.isBackgroundScan) sb.append(" (Background)");
            sb.append("\n");

            sb.append("  LE scans (started/stopped)       : " +
+2 −2
Original line number Diff line number Diff line
@@ -1390,7 +1390,7 @@ public class GattService extends ProfileService {
        scanClient.hasPeersMacAddressPermission = Utils.checkCallerHasPeersMacAddressPermission(
                this);
        scanClient.legacyForegroundApp = Utils.isLegacyForegroundApp(this, callingPackage);
        mClientMap.getScanStatsById(appIf).startScan();
        mClientMap.getScanStatsById(appIf).recordScanStart(settings);
        mScanManager.startScan(scanClient);
    }

@@ -1405,7 +1405,7 @@ public class GattService extends ProfileService {
        int scanQueueSize = mScanManager.getBatchScanQueue().size() +
                mScanManager.getRegularScanQueue().size();
        if (DBG) Log.d(TAG, "stopScan() - queue size =" + scanQueueSize);
        mClientMap.getScanStatsById(client.clientIf).stopScan();
        mClientMap.getScanStatsById(client.clientIf).recordScanStop();
        mScanManager.stopScan(client);
    }