Loading android/app/src/com/android/bluetooth/le_scan/AppScanStats.java +12 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -104,6 +105,7 @@ public class AppScanStats { public int scanMode; public int scanCallbackType; public StringBuilder filterString; @Nullable public String attributionTag; LastScan( long timestamp, Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 = Loading Loading @@ -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 { Loading android/app/src/com/android/bluetooth/le_scan/TransitionalScanHelper.java +13 −2 Original line number Diff line number Diff line Loading @@ -1246,7 +1246,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); Loading Loading @@ -1353,7 +1359,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); Loading android/app/tests/unit/src/com/android/bluetooth/le_scan/AppScanStatsTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -291,7 +291,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; } Loading Loading @@ -389,7 +389,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; } Loading android/app/tests/unit/src/com/android/bluetooth/le_scan/TransitionalScanHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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()); } Loading @@ -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 Loading
android/app/src/com/android/bluetooth/le_scan/AppScanStats.java +12 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -104,6 +105,7 @@ public class AppScanStats { public int scanMode; public int scanCallbackType; public StringBuilder filterString; @Nullable public String attributionTag; LastScan( long timestamp, Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading @@ -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 = Loading Loading @@ -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 { Loading
android/app/src/com/android/bluetooth/le_scan/TransitionalScanHelper.java +13 −2 Original line number Diff line number Diff line Loading @@ -1246,7 +1246,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); Loading Loading @@ -1353,7 +1359,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); Loading
android/app/tests/unit/src/com/android/bluetooth/le_scan/AppScanStatsTest.java +2 −1 Original line number Diff line number Diff line Loading @@ -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(); Loading
android/app/tests/unit/src/com/android/bluetooth/le_scan/ScanManagerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -291,7 +291,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; } Loading Loading @@ -389,7 +389,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; } Loading
android/app/tests/unit/src/com/android/bluetooth/le_scan/TransitionalScanHelperTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -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()); } Loading @@ -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