feat: protocol key/launch command layer — RemoteKeyCode maps, C-LAUNCH app launch, ADB digit keyevent fallback, PlaybackIntent protocol path
This commit is contained in:
1 parent
906126b0da
commit
61aca9d413
4 files changed
+92
-1
No files matched your search
@@ -164,6 +164,16 @@ class AdbClientBase:
|
||||
return True
|
||||
return False
|
||||
|
||||
async def send_digit_keyevent(self, digit: str) -> bool:
|
||||
"""Send a channel digit via `input keyevent` (KEYCODE_0..9 = 7..16)."""
|
||||
if not digit.isdigit() or len(digit) != 1:
|
||||
_LOGGER.warning("Not a single digit: %s", digit)
|
||||
return False
|
||||
result = await self.shell(f"input keyevent {7 + int(digit)}")
|
||||
if result is not None:
|
||||
_LOGGER.debug("ADB digit keyevent %d (%s)", 7 + int(digit), digit)
|
||||
return result is not None
|
||||
|
||||
async def bring_to_foreground(self, package: str) -> bool:
|
||||
"""Bring an app to the foreground using monkey command."""
|
||||
result = await self.shell(
|
||||
|
||||
@@ -22,8 +22,11 @@ class PlaybackIntent:
|
||||
the remote that did not serve it.
|
||||
adb_command: The ADB keycode command name matching the intent
|
||||
(play/pause/stop/next/previous); set together with via_adb.
|
||||
via_protocol: True when the command was served by the remote-protocol
|
||||
key push (Phase 2) — the retry then goes over the protocol key
|
||||
again instead of the other transports.
|
||||
protocol_key: The protocol keycode string served with via_protocol.
|
||||
"""
|
||||
|
||||
target_state: str # MediaPlayerState value (e.g. "playing", "paused")
|
||||
command: str
|
||||
created_at: float
|
||||
@@ -31,6 +34,8 @@ class PlaybackIntent:
|
||||
retry_count: int = 0
|
||||
via_adb: bool = False
|
||||
adb_command: str | None = None
|
||||
via_protocol: bool = False
|
||||
protocol_key: str | None = None
|
||||
|
||||
@classmethod
|
||||
def create(
|
||||
|
||||
Reference in new issue
Block a user