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

Commit 1b328f67 authored by Jayden Kim's avatar Jayden Kim
Browse files

Record hw scan filter resource exhaustion count

- hw scan filter is not available
- hw scan filter to track advertisement is not available

Bug: 295587775
Test: atest BluetoothInstrumentationTests
Change-Id: Ia7aefc0746e1becdb227c3de2ffcbe64da6f28b1
parent 1f86922b
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -379,6 +379,18 @@ import java.util.Objects;
                .cacheCount(BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_SCAN_TIMEOUT, 1);
    }

    synchronized void recordHwFilterNotAvailableCountMetrics() {
        MetricsLogger.getInstance()
                .cacheCount(BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_HW_FILTER_NOT_AVAILABLE, 1);
    }

    synchronized void recordTrackingHwFilterNotAvailableCountMetrics() {
        MetricsLogger.getInstance()
                .cacheCount(
                        BluetoothProtoEnums.LE_SCAN_ABUSE_COUNT_TRACKING_HW_FILTER_NOT_AVAILABLE,
                        1);
    }

    static void initScanRadioState() {
        synchronized (sLock) {
            sIsRadioStarted = false;
+6 −1
Original line number Diff line number Diff line
@@ -1517,6 +1517,7 @@ public class ScanManager {
                        if (!manageAllocationOfTrackingAdvertisement(trackEntries, true)) {
                            Log.e(TAG, "No hardware resources for onfound/onlost filter "
                                    + trackEntries);
                            client.stats.recordTrackingHwFilterNotAvailableCountMetrics();
                            try {
                                mService.onScanManagerErrorCallback(scannerId,
                                        ScanCallback.SCAN_FAILED_INTERNAL_ERROR);
@@ -1614,7 +1615,11 @@ public class ScanManager {
            if (client.filters == null || client.filters.isEmpty()) {
                return true;
            }
            return client.filters.size() > mFilterIndexStack.size();
            if (client.filters.size() > mFilterIndexStack.size()) {
                client.stats.recordHwFilterNotAvailableCountMetrics();
                return true;
            }
            return false;
        }

        private void initFilterIndexStack() {