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

Commit c28ac667 authored by Omair Kamil's avatar Omair Kamil
Browse files

Log attribution tag for last scans in dumpsys.

Bug: 372576833
Flag: EXEMPT, logging change
Test: atest BluetoothInstrumentationTests
Change-Id: I23491145326aff3cfd8eaaf38170e849f0910d6e
parent bb17446b
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.bluetooth.le_scan;

import android.annotation.Nullable;
import android.bluetooth.BluetoothProtoEnums;
import android.bluetooth.le.ScanFilter;
import android.bluetooth.le.ScanSettings;
@@ -104,6 +105,7 @@ public class AppScanStats {
        public int scanMode;
        public int scanCallbackType;
        public StringBuilder filterString;
        @Nullable public String attributionTag;

        LastScan(
                long timestamp,
@@ -112,7 +114,8 @@ public class AppScanStats {
                boolean isCallbackScan,
                int scannerId,
                int scanMode,
                int scanCallbackType) {
                int scanCallbackType,
                @Nullable String attributionTag) {
            this.duration = 0;
            this.timestamp = timestamp;
            this.reportDelayMillis = reportDelayMillis;
@@ -126,6 +129,7 @@ public class AppScanStats {
            this.isAutoBatchScan = false;
            this.scanMode = scanMode;
            this.scanCallbackType = scanCallbackType;
            this.attributionTag = attributionTag;
            this.results = 0;
            this.scannerId = scannerId;
            this.suspendDuration = 0;
@@ -239,7 +243,8 @@ public class AppScanStats {
            List<ScanFilter> filters,
            boolean isFilterScan,
            boolean isCallbackScan,
            int scannerId) {
            int scannerId,
            @Nullable String attributionTag) {
        LastScan existingScan = getScanFromScannerId(scannerId);
        if (existingScan != null) {
            return;
@@ -255,7 +260,8 @@ public class AppScanStats {
                        isCallbackScan,
                        scannerId,
                        settings.getScanMode(),
                        settings.getCallbackType());
                        settings.getCallbackType(),
                        attributionTag);
        if (settings != null) {
            scan.isOpportunisticScan = scan.scanMode == ScanSettings.SCAN_MODE_OPPORTUNISTIC;
            scan.isBackgroundScan =
@@ -1065,6 +1071,9 @@ public class AppScanStats {
                }
                sb.append(scan.results).append(" results");
                sb.append(" (").append(scan.scannerId).append(") ");
                if (scan.attributionTag != null) {
                    sb.append(" [").append(scan.attributionTag).append("] ");
                }
                if (scan.isCallbackScan) {
                    sb.append("CB ");
                } else {
+13 −2
Original line number Diff line number Diff line
@@ -1210,7 +1210,13 @@ public class TransitionalScanHelper {
            if (cbApp != null) {
                isCallbackScan = cbApp.mCallback != null;
            }
            app.recordScanStart(settings, filters, isFilteredScan, isCallbackScan, scannerId);
            app.recordScanStart(
                    settings,
                    filters,
                    isFilteredScan,
                    isCallbackScan,
                    scannerId,
                    cbApp == null ? null : cbApp.mAttributionTag);
        }

        mScanManager.startScan(scanClient);
@@ -1317,7 +1323,12 @@ public class TransitionalScanHelper {
            scanClient.stats = scanStats;
            boolean isFilteredScan = (piInfo.filters != null) && !piInfo.filters.isEmpty();
            scanStats.recordScanStart(
                    piInfo.settings, piInfo.filters, isFilteredScan, false, scannerId);
                    piInfo.settings,
                    piInfo.filters,
                    isFilteredScan,
                    false,
                    scannerId,
                    app.mAttributionTag);
        }

        mScanManager.startScan(scanClient);
+2 −1
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ public class AppScanStatsTest {
        boolean isCallbackScan = false;
        int scannerId = 0;

        appScanStats.recordScanStart(settings, filters, isFilterScan, isCallbackScan, scannerId);
        appScanStats.recordScanStart(
                settings, filters, isFilterScan, isCallbackScan, scannerId, "tag");
        appScanStats.isRegistered = true;

        StringBuilder stringBuilder = new StringBuilder();
+2 −2
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ public class ScanManagerTest {

        ScanClient client = new ScanClient(id, scanSettings, scanFilterList, appUid);
        client.stats = appScanStats;
        client.stats.recordScanStart(scanSettings, scanFilterList, isFiltered, false, id);
        client.stats.recordScanStart(scanSettings, scanFilterList, isFiltered, false, id, null);
        return client;
    }

@@ -385,7 +385,7 @@ public class ScanManagerTest {

        ScanClient client = new ScanClient(id, scanSettings, scanFilterList);
        client.stats = mMockAppScanStats;
        client.stats.recordScanStart(scanSettings, scanFilterList, isFiltered, false, id);
        client.stats.recordScanStart(scanSettings, scanFilterList, isFiltered, false, id, null);
        return client;
    }

+2 −2
Original line number Diff line number Diff line
@@ -174,7 +174,7 @@ public class TransitionalScanHelperTest {
        mScanHelper.continuePiStartScan(scannerId, mApp);

        verify(appScanStats)
                .recordScanStart(mPiInfo.settings, mPiInfo.filters, false, false, scannerId);
                .recordScanStart(mPiInfo.settings, mPiInfo.filters, false, false, scannerId, null);
        verify(mScanManager).startScan(any());
    }

@@ -192,7 +192,7 @@ public class TransitionalScanHelperTest {
        mScanHelper.continuePiStartScan(scannerId, mApp);

        verify(appScanStats)
                .recordScanStart(mPiInfo.settings, mPiInfo.filters, false, false, scannerId);
                .recordScanStart(mPiInfo.settings, mPiInfo.filters, false, false, scannerId, null);
        verify(mScanManager)
                .startScan(
                        argThat(
Loading