glasses: hold Mercury kill switch on hidden VirtualDisplay; phone: brightness/WiFi panel, two-finger touchpad scroll
This commit is contained in:
@@ -79,6 +79,20 @@ data class CursorMove(
|
||||
@SerialName("cursor_click")
|
||||
data object CursorClick : VmMessage
|
||||
|
||||
/**
|
||||
* Скролл в текущей позиции курсора (два пальца по тачпаду).
|
||||
*
|
||||
* [dx]/[dy] — смещение пальцев в пикселях координат VirtualDisplay гостя. Очки превращают
|
||||
* его в колесо мыши (`MotionEvent.ACTION_SCROLL` + `AXIS_HSCROLL`/`AXIS_VSCROLL`) в точке
|
||||
* [CursorMove], поэтому скроллится то, что под курсором.
|
||||
*/
|
||||
@Serializable
|
||||
@SerialName("cursor_scroll")
|
||||
data class CursorScroll(
|
||||
val dx: Float,
|
||||
val dy: Float,
|
||||
) : VmMessage
|
||||
|
||||
@Serializable
|
||||
@SerialName("launch_app")
|
||||
data class LaunchAppCommand(
|
||||
|
||||
@@ -60,6 +60,14 @@ class VmProtocolTest {
|
||||
assertEquals(CursorClick, decoded)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `CursorScroll roundtrip`() {
|
||||
val msg = CursorScroll(dx = -3.5f, dy = 12.25f)
|
||||
val encoded = VmProtocol.encode(msg)
|
||||
val decoded = VmProtocol.decode<CursorScroll>(encoded)
|
||||
assertEquals(msg, decoded)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `decodeAny for CursorMove uses type discriminator`() {
|
||||
val msg = VmProtocol.decodeAny("""{"type":"cursor_move","x":10.5,"y":20.25}""")
|
||||
|
||||
Reference in New Issue
Block a user