From f6efee1a9cb56281f19ebb88697972dd2e288210 Mon Sep 17 00:00:00 2001 From: PJ Date: Sat, 18 Apr 2026 00:04:22 +0700 Subject: [PATCH] feat(sidecar): wire tapSelector through DriverBackend + DriverService --- sidecar/src/main/kotlin/dev/uatu/sidecar/DriverBackend.kt | 7 +++++++ sidecar/src/main/kotlin/dev/uatu/sidecar/DriverService.kt | 8 ++++++++ 2 files changed, 15 insertions(+) diff --git a/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverBackend.kt b/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverBackend.kt index 454840f..b1490ab 100644 --- a/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverBackend.kt +++ b/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverBackend.kt @@ -4,6 +4,7 @@ interface DriverBackend { fun launch(bundleId: String, clearState: Boolean) fun terminate(bundleId: String) fun tap(x: Int, y: Int) + fun tapSelector(selector: String) fun inputText(text: String) fun screenshot(): Triple fun hierarchy(): String @@ -24,6 +25,8 @@ class StubDriverBackend(private val platform: String) : DriverBackend { private set @Volatile var lastTap: Pair? = null private set + @Volatile var lastTapSelector: String? = null + private set @Volatile var lastInputText: String? = null private set @@ -40,6 +43,10 @@ class StubDriverBackend(private val platform: String) : DriverBackend { lastTap = x to y } + override fun tapSelector(selector: String) { + lastTapSelector = selector + } + override fun inputText(text: String) { lastInputText = text } diff --git a/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverService.kt b/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverService.kt index 5599141..c4187b0 100644 --- a/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverService.kt +++ b/sidecar/src/main/kotlin/dev/uatu/sidecar/DriverService.kt @@ -9,6 +9,7 @@ import dev.uatu.driver.v1.HierarchyJSON import dev.uatu.driver.v1.Image import dev.uatu.driver.v1.LaunchRequest import dev.uatu.driver.v1.Point +import dev.uatu.driver.v1.Selector import dev.uatu.driver.v1.Text import io.grpc.stub.StreamObserver import java.util.concurrent.atomic.AtomicReference @@ -44,6 +45,13 @@ class DriverService( } } + override fun tapSelector(request: Selector, responseObserver: StreamObserver) { + runRpc(responseObserver) { + backend.tapSelector(request.value) + Empty.getDefaultInstance() + } + } + override fun inputText(request: Text, responseObserver: StreamObserver) { runRpc(responseObserver) { backend.inputText(request.value)