30 lines
761 B
Python
30 lines
761 B
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
|
|
from core.models import ActiveApp
|
|
from device.manager import DEFAULT_MANAGER, DeviceManager
|
|
from driver.base import Driver
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def get_driver(
|
|
device_id: str | None = None,
|
|
*,
|
|
manager: DeviceManager | None = None,
|
|
) -> Driver:
|
|
return (manager or DEFAULT_MANAGER).active_driver(device_id)
|
|
|
|
|
|
def get_active_app_info(driver: Driver) -> ActiveApp | None:
|
|
"""Best-effort foreground application lookup that cannot block observation."""
|
|
try:
|
|
return driver.active_app()
|
|
except Exception:
|
|
logger.warning(
|
|
"active app retrieval failed; continuing without app metadata",
|
|
exc_info=True,
|
|
)
|
|
return None
|