feat(adb_client): expose last_dump so consumers can parse the Audio playback section from the same query

This commit is contained in:
James Mackay committed 2026-10-08 08:53:13 +01:00
1 parent 37164b6f24
commit 4269e233b8
1 file changed
+13
@@ -72,8 +72,10 @@ class AdbClientBase:
# Media session state
self._last_info: MediaSessionInfo | None = None
self._last_dump: str | None = None
self._all_sessions: list[MediaSessionInfo] = []
@property
def connected(self) -> bool:
return self._connected
@@ -89,6 +91,7 @@ class AdbClientBase:
def clear_info(self) -> None:
"""Clear the cached media session info."""
self._last_info = None
self._last_dump = None
self._all_sessions = []
async def connect(self) -> bool:
@@ -196,12 +199,22 @@ class AdbClientBase:
if head_lines is not None:
command += f" | head -{head_lines}"
dump = await self.shell(command)
self._last_dump = dump if dump is not None else None
if dump is None:
return None
self._all_sessions = parse_all_media_sessions(dump)
self._last_info = parse_media_session(dump, foreground_package)
return self._last_info
@property
def last_dump(self) -> str | None:
"""Raw output of the last media-session query (or None if it failed).
Shared consumers (the ShieldConnectionManager) parse the "Audio
playback" section from this same dump — no extra round trip.
"""
return self._last_dump
# -- Health check --
async def health_check(self) -> bool: