Files
2026-07-16 08:13:04 +08:00

33 lines
906 B
Python

from __future__ import annotations
from typing import Any
from device.manager import DeviceManager
from perception.ui_parser import parse_ui_tree
from tools._device import get_active_app_info, get_driver
def get_raw_ui_tree(
device_id: str | None = None,
*,
manager: DeviceManager | None = None,
) -> Any:
return get_driver(device_id, manager=manager).tree()
def get_ui_tree(
device_id: str | None = None,
*,
manager: DeviceManager | None = None,
include_app_info: bool = False,
) -> list[dict[str, object]] | dict[str, object]:
driver = get_driver(device_id, manager=manager)
nodes = [element.to_dict() for element in parse_ui_tree(driver.tree())]
if not include_app_info:
return nodes
active_app = get_active_app_info(driver)
return {
"app": active_app.to_dict() if active_app is not None else None,
"nodes": nodes,
}