Loading packages/SystemUI/src/com/android/systemui/stylus/StylusManager.kt +8 −4 Original line number Diff line number Diff line Loading @@ -261,22 +261,26 @@ constructor( private fun trackAndLogUsiSession(deviceId: Int, batteryStateValid: Boolean) { // TODO(b/268618918) handle cases where an invalid battery callback from a previous stylus // is sent after the actual valid callback val hasBtConnection = if (inputDeviceBtSessionIdMap.isEmpty()) 0 else 1 if (batteryStateValid && usiSessionId == null) { logDebug { "USI battery newly present, entering new USI session: $deviceId" } usiSessionId = instanceIdSequence.newInstanceId() uiEventLogger.logWithInstanceId( uiEventLogger.logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, usiSessionId usiSessionId, hasBtConnection, ) } else if (!batteryStateValid && usiSessionId != null) { logDebug { "USI battery newly absent, exiting USI session: $deviceId" } uiEventLogger.logWithInstanceId( uiEventLogger.logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_REMOVED, 0, null, usiSessionId usiSessionId, hasBtConnection, ) usiSessionId = null } Loading packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt +26 −6 Original line number Diff line number Diff line Loading @@ -507,11 +507,29 @@ class StylusManagerTest : SysuiTestCase() { stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId) InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId), 0, ) } @Test fun onBatteryStateChanged_batteryPresent_btStylusPresent_logsSessionStart() { whenever(batteryState.isPresent).thenReturn(true) stylusManager.onInputDeviceAdded(BT_STYLUS_DEVICE_ID) stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId), 1, ) } Loading Loading @@ -545,19 +563,21 @@ class StylusManagerTest : SysuiTestCase() { stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, instanceId instanceId, 0 ) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_REMOVED, 0, null, instanceId instanceId, 0 ) } Loading Loading
packages/SystemUI/src/com/android/systemui/stylus/StylusManager.kt +8 −4 Original line number Diff line number Diff line Loading @@ -261,22 +261,26 @@ constructor( private fun trackAndLogUsiSession(deviceId: Int, batteryStateValid: Boolean) { // TODO(b/268618918) handle cases where an invalid battery callback from a previous stylus // is sent after the actual valid callback val hasBtConnection = if (inputDeviceBtSessionIdMap.isEmpty()) 0 else 1 if (batteryStateValid && usiSessionId == null) { logDebug { "USI battery newly present, entering new USI session: $deviceId" } usiSessionId = instanceIdSequence.newInstanceId() uiEventLogger.logWithInstanceId( uiEventLogger.logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, usiSessionId usiSessionId, hasBtConnection, ) } else if (!batteryStateValid && usiSessionId != null) { logDebug { "USI battery newly absent, exiting USI session: $deviceId" } uiEventLogger.logWithInstanceId( uiEventLogger.logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_REMOVED, 0, null, usiSessionId usiSessionId, hasBtConnection, ) usiSessionId = null } Loading
packages/SystemUI/tests/src/com/android/systemui/stylus/StylusManagerTest.kt +26 −6 Original line number Diff line number Diff line Loading @@ -507,11 +507,29 @@ class StylusManagerTest : SysuiTestCase() { stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId) InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId), 0, ) } @Test fun onBatteryStateChanged_batteryPresent_btStylusPresent_logsSessionStart() { whenever(batteryState.isPresent).thenReturn(true) stylusManager.onInputDeviceAdded(BT_STYLUS_DEVICE_ID) stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, InstanceId.fakeInstanceId(instanceIdSequenceFake.lastInstanceId), 1, ) } Loading Loading @@ -545,19 +563,21 @@ class StylusManagerTest : SysuiTestCase() { stylusManager.onBatteryStateChanged(STYLUS_DEVICE_ID, 1, batteryState) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_FIRST_DETECTED, 0, null, instanceId instanceId, 0 ) verify(uiEventLogger, times(1)) .logWithInstanceId( .logWithInstanceIdAndPosition( StylusUiEvent.USI_STYLUS_BATTERY_PRESENCE_REMOVED, 0, null, instanceId instanceId, 0 ) } Loading