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

Commit 27479cc7 authored by Jayden Kim's avatar Jayden Kim
Browse files

Adds screen on/off event counter

Bug: 236321914
Test: atest BluetoothInstrumentationTests and device test
Tag: #feature
Change-Id: I6ccf3f6d0e4f3ce867ae37fe7fac5dc726b626ee
parent 5a1a64d7
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -394,6 +394,15 @@ import java.util.Objects;
        }
    }

    @GuardedBy("sLock")
    private static void recordScreenOnOffMetrics(boolean isScreenOn) {
        if (isScreenOn) {
            MetricsLogger.getInstance().cacheCount(BluetoothProtoEnums.SCREEN_ON_EVENT, 1);
        } else {
            MetricsLogger.getInstance().cacheCount(BluetoothProtoEnums.SCREEN_OFF_EVENT, 1);
        }
    }

    private static int getScanWeight(int scanMode) {
        switch (scanMode) {
            case ScanSettings.SCAN_MODE_OPPORTUNISTIC:
@@ -439,6 +448,7 @@ import java.util.Objects;
                recordScanRadioDurationMetrics();
                sRadioStartTime = SystemClock.elapsedRealtime();
            }
            recordScreenOnOffMetrics(isScreenOn);
            sIsScreenOn = isScreenOn;
        }
    }
+22 −3
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import static org.mockito.Mockito.atMost;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@@ -1054,7 +1055,6 @@ public class ScanManagerTest {
        final boolean isFiltered = true;
        // Turn on screen
        sendMessageWaitForProcessed(createScreenOnOffMessage(true));
        verify(mMetricsLogger, never()).cacheCount(anyInt(), anyLong());
        Mockito.clearInvocations(mMetricsLogger);
        // Create scan client
        ScanClient client = createScanClient(0, isFiltered, SCAN_MODE_LOW_POWER);
@@ -1085,7 +1085,6 @@ public class ScanManagerTest {
        final boolean isFiltered = true;
        // Turn on screen
        sendMessageWaitForProcessed(createScreenOnOffMessage(true));
        verify(mMetricsLogger, never()).cacheCount(anyInt(), anyLong());
        Mockito.clearInvocations(mMetricsLogger);
        // Create scan client
        ScanClient client = createScanClient(0, isFiltered, SCAN_MODE_LOW_POWER);
@@ -1136,7 +1135,6 @@ public class ScanManagerTest {
        final boolean isFiltered = true;
        // Turn on screen
        sendMessageWaitForProcessed(createScreenOnOffMessage(true));
        verify(mMetricsLogger, never()).cacheCount(anyInt(), anyLong());
        Mockito.clearInvocations(mMetricsLogger);
        // Create scan clients with different duty cycles
        ScanClient client = createScanClient(0, isFiltered, SCAN_MODE_LOW_POWER);
@@ -1217,4 +1215,25 @@ public class ScanManagerTest {
            Mockito.clearInvocations(mMetricsLogger);
        }
    }

    @Test
    public void testMetricsScreenOnOff() {
        // Turn off screen initially
        sendMessageWaitForProcessed(createScreenOnOffMessage(false));
        Mockito.clearInvocations(mMetricsLogger);
        // Turn on screen
        sendMessageWaitForProcessed(createScreenOnOffMessage(true));
        verify(mMetricsLogger, never()).cacheCount(
                eq(BluetoothProtoEnums.SCREEN_OFF_EVENT), anyLong());
        verify(mMetricsLogger, times(1)).cacheCount(
                eq(BluetoothProtoEnums.SCREEN_ON_EVENT), anyLong());
        Mockito.clearInvocations(mMetricsLogger);
        // Turn off screen
        sendMessageWaitForProcessed(createScreenOnOffMessage(false));
        verify(mMetricsLogger, never()).cacheCount(
                eq(BluetoothProtoEnums.SCREEN_ON_EVENT), anyLong());
        verify(mMetricsLogger, times(1)).cacheCount(
                eq(BluetoothProtoEnums.SCREEN_OFF_EVENT), anyLong());
        Mockito.clearInvocations(mMetricsLogger);
    }
}