Merge "Track USI session with bluetooth stylus position." into udc-dev
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user