mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-19 12:08:37 +00:00
feat(android): add device invoke protocol commands
This commit is contained in:
@@ -3,6 +3,7 @@ package ai.openclaw.android.node
|
|||||||
import ai.openclaw.android.protocol.OpenClawCanvasA2UICommand
|
import ai.openclaw.android.protocol.OpenClawCanvasA2UICommand
|
||||||
import ai.openclaw.android.protocol.OpenClawCanvasCommand
|
import ai.openclaw.android.protocol.OpenClawCanvasCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawCameraCommand
|
import ai.openclaw.android.protocol.OpenClawCameraCommand
|
||||||
|
import ai.openclaw.android.protocol.OpenClawDeviceCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawLocationCommand
|
import ai.openclaw.android.protocol.OpenClawLocationCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawNotificationsCommand
|
import ai.openclaw.android.protocol.OpenClawNotificationsCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawScreenCommand
|
import ai.openclaw.android.protocol.OpenClawScreenCommand
|
||||||
@@ -75,6 +76,12 @@ object InvokeCommandRegistry {
|
|||||||
name = OpenClawLocationCommand.Get.rawValue,
|
name = OpenClawLocationCommand.Get.rawValue,
|
||||||
availability = InvokeCommandAvailability.LocationEnabled,
|
availability = InvokeCommandAvailability.LocationEnabled,
|
||||||
),
|
),
|
||||||
|
InvokeCommandSpec(
|
||||||
|
name = OpenClawDeviceCommand.Status.rawValue,
|
||||||
|
),
|
||||||
|
InvokeCommandSpec(
|
||||||
|
name = OpenClawDeviceCommand.Info.rawValue,
|
||||||
|
),
|
||||||
InvokeCommandSpec(
|
InvokeCommandSpec(
|
||||||
name = OpenClawNotificationsCommand.List.rawValue,
|
name = OpenClawNotificationsCommand.List.rawValue,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ enum class OpenClawCapability(val rawValue: String) {
|
|||||||
Sms("sms"),
|
Sms("sms"),
|
||||||
VoiceWake("voiceWake"),
|
VoiceWake("voiceWake"),
|
||||||
Location("location"),
|
Location("location"),
|
||||||
|
Device("device"),
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class OpenClawCanvasCommand(val rawValue: String) {
|
enum class OpenClawCanvasCommand(val rawValue: String) {
|
||||||
@@ -70,6 +71,16 @@ enum class OpenClawLocationCommand(val rawValue: String) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum class OpenClawDeviceCommand(val rawValue: String) {
|
||||||
|
Status("device.status"),
|
||||||
|
Info("device.info"),
|
||||||
|
;
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val NamespacePrefix: String = "device."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
enum class OpenClawNotificationsCommand(val rawValue: String) {
|
enum class OpenClawNotificationsCommand(val rawValue: String) {
|
||||||
List("notifications.list"),
|
List("notifications.list"),
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package ai.openclaw.android.node
|
package ai.openclaw.android.node
|
||||||
|
|
||||||
import ai.openclaw.android.protocol.OpenClawCameraCommand
|
import ai.openclaw.android.protocol.OpenClawCameraCommand
|
||||||
|
import ai.openclaw.android.protocol.OpenClawDeviceCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawLocationCommand
|
import ai.openclaw.android.protocol.OpenClawLocationCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawNotificationsCommand
|
import ai.openclaw.android.protocol.OpenClawNotificationsCommand
|
||||||
import ai.openclaw.android.protocol.OpenClawSmsCommand
|
import ai.openclaw.android.protocol.OpenClawSmsCommand
|
||||||
@@ -22,6 +23,8 @@ class InvokeCommandRegistryTest {
|
|||||||
assertFalse(commands.contains(OpenClawCameraCommand.Snap.rawValue))
|
assertFalse(commands.contains(OpenClawCameraCommand.Snap.rawValue))
|
||||||
assertFalse(commands.contains(OpenClawCameraCommand.Clip.rawValue))
|
assertFalse(commands.contains(OpenClawCameraCommand.Clip.rawValue))
|
||||||
assertFalse(commands.contains(OpenClawLocationCommand.Get.rawValue))
|
assertFalse(commands.contains(OpenClawLocationCommand.Get.rawValue))
|
||||||
|
assertTrue(commands.contains(OpenClawDeviceCommand.Status.rawValue))
|
||||||
|
assertTrue(commands.contains(OpenClawDeviceCommand.Info.rawValue))
|
||||||
assertTrue(commands.contains(OpenClawNotificationsCommand.List.rawValue))
|
assertTrue(commands.contains(OpenClawNotificationsCommand.List.rawValue))
|
||||||
assertFalse(commands.contains(OpenClawSmsCommand.Send.rawValue))
|
assertFalse(commands.contains(OpenClawSmsCommand.Send.rawValue))
|
||||||
assertFalse(commands.contains("debug.logs"))
|
assertFalse(commands.contains("debug.logs"))
|
||||||
@@ -42,6 +45,8 @@ class InvokeCommandRegistryTest {
|
|||||||
assertTrue(commands.contains(OpenClawCameraCommand.Snap.rawValue))
|
assertTrue(commands.contains(OpenClawCameraCommand.Snap.rawValue))
|
||||||
assertTrue(commands.contains(OpenClawCameraCommand.Clip.rawValue))
|
assertTrue(commands.contains(OpenClawCameraCommand.Clip.rawValue))
|
||||||
assertTrue(commands.contains(OpenClawLocationCommand.Get.rawValue))
|
assertTrue(commands.contains(OpenClawLocationCommand.Get.rawValue))
|
||||||
|
assertTrue(commands.contains(OpenClawDeviceCommand.Status.rawValue))
|
||||||
|
assertTrue(commands.contains(OpenClawDeviceCommand.Info.rawValue))
|
||||||
assertTrue(commands.contains(OpenClawNotificationsCommand.List.rawValue))
|
assertTrue(commands.contains(OpenClawNotificationsCommand.List.rawValue))
|
||||||
assertTrue(commands.contains(OpenClawSmsCommand.Send.rawValue))
|
assertTrue(commands.contains(OpenClawSmsCommand.Send.rawValue))
|
||||||
assertTrue(commands.contains("debug.logs"))
|
assertTrue(commands.contains("debug.logs"))
|
||||||
|
|||||||
@@ -26,6 +26,9 @@ class OpenClawProtocolConstantsTest {
|
|||||||
assertEquals("camera", OpenClawCapability.Camera.rawValue)
|
assertEquals("camera", OpenClawCapability.Camera.rawValue)
|
||||||
assertEquals("screen", OpenClawCapability.Screen.rawValue)
|
assertEquals("screen", OpenClawCapability.Screen.rawValue)
|
||||||
assertEquals("voiceWake", OpenClawCapability.VoiceWake.rawValue)
|
assertEquals("voiceWake", OpenClawCapability.VoiceWake.rawValue)
|
||||||
|
assertEquals("location", OpenClawCapability.Location.rawValue)
|
||||||
|
assertEquals("sms", OpenClawCapability.Sms.rawValue)
|
||||||
|
assertEquals("device", OpenClawCapability.Device.rawValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -37,4 +40,10 @@ class OpenClawProtocolConstantsTest {
|
|||||||
fun notificationsCommandsUseStableStrings() {
|
fun notificationsCommandsUseStableStrings() {
|
||||||
assertEquals("notifications.list", OpenClawNotificationsCommand.List.rawValue)
|
assertEquals("notifications.list", OpenClawNotificationsCommand.List.rawValue)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun deviceCommandsUseStableStrings() {
|
||||||
|
assertEquals("device.status", OpenClawDeviceCommand.Status.rawValue)
|
||||||
|
assertEquals("device.info", OpenClawDeviceCommand.Info.rawValue)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user