feat(adb_client): expose last_dump so consumers can parse the Audio playback section from the same query
This commit is contained in:
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:
|
||||
|
||||
Reference in new issue
Block a user