Merge "Track USI session with bluetooth stylus position." into udc-dev

This commit is contained in:
Vania Januar
2023-03-20 13:17:44 +00:00
committed by Android (Google) Code Review
2 changed files with 34 additions and 10 deletions

View File

@@ -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
}

View File

@@ -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,
)
}
@@ -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
)
}