diff --git a/src/askui/tools/android/agent_os.py b/src/askui/tools/android/agent_os.py index a4fc7c09..9659352e 100644 --- a/src/askui/tools/android/agent_os.py +++ b/src/askui/tools/android/agent_os.py @@ -229,21 +229,32 @@ def get_display_unique_id_flag(self) -> str: return f"-d {self.unique_display_id}" -class UnknownAndroidDisplay(AndroidDisplay): +class SingleAndroidDisplay(AndroidDisplay): """ - Fallback display for when the Agent OS is not able to determine the displays. + Single display when there is only one display connected. """ - def __init__(self) -> None: - super().__init__(0, "Unknown", 0) + def __init__(self, display_name: str) -> None: + super().__init__(0, display_name, 0) + # In case of a single display, the display id flag is not needed def get_display_id_flag(self) -> str: return "" + # In case of a single display, the display unique id flag is not needed def get_display_unique_id_flag(self) -> str: return "" +class UnknownAndroidDisplay(SingleAndroidDisplay): + """ + Fallback display for when the Agent OS is not able to determine the displays. + """ + + def __init__(self) -> None: + super().__init__("Unknown") + + class AndroidAgentOs(ABC): """ Abstract base class for Android Agent OS. Cannot be instantiated directly. diff --git a/src/askui/tools/android/ppadb_agent_os.py b/src/askui/tools/android/ppadb_agent_os.py index 3569895e..c2a9cb2d 100644 --- a/src/askui/tools/android/ppadb_agent_os.py +++ b/src/askui/tools/android/ppadb_agent_os.py @@ -14,6 +14,7 @@ ANDROID_KEY, AndroidAgentOs, AndroidDisplay, + SingleAndroidDisplay, UnknownAndroidDisplay, ) from askui.tools.android.android_agent_os_error import AndroidAgentOsError @@ -116,6 +117,10 @@ def get_connected_displays(self) -> list[AndroidDisplay]: ) if not displays: return [UnknownAndroidDisplay()] + + if len(displays) == 1: + return [SingleAndroidDisplay(displays[0].display_name)] + return displays def set_display_by_index(self, display_index: int = 0) -> None: