refactor: centralize ADB host/key resolution in helpers.py; drop the three duplicated resolvers

This commit is contained in:
James Mackay committed 2026-10-08 07:48:30 +01:00
1 parent d3afda0a25
commit 6b4227cb40
4 files changed
+80 -74

No files matched your search

+4 -22
View File
@@ -5,7 +5,6 @@ import logging
from homeassistant.components.button import ButtonEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.entity_platform import AddEntitiesCallback
@@ -18,6 +17,7 @@ from .const import (
DEFAULT_ADB_PORT,
DOMAIN,
)
from .helpers import discover_adb_host
_LOGGER = logging.getLogger(__name__)
@@ -52,29 +52,11 @@ class NvidiaShieldPairAdbButton(ButtonEntity):
model="Shield TV",
)
def _resolve_host(self) -> str | None:
"""Resolve ADB host from config or Android TV entity."""
host = self._entry.options.get(CONF_ADB_HOST)
if host:
return host
atv_entity = self._entry.data.get(CONF_ANDROIDTV_ENTITY)
if not atv_entity:
return None
registry = er.async_get(self.hass)
entity_entry = registry.async_get(atv_entity)
if not entity_entry or not entity_entry.config_entry_id:
return None
config_entry = self.hass.config_entries.async_get_entry(entity_entry.config_entry_id)
if config_entry:
return config_entry.data.get("host")
return None
async def async_press(self) -> None:
"""Attempt ADB connection. The Shield will show a pairing prompt."""
host = self._resolve_host()
host = self._entry.options.get(CONF_ADB_HOST) or discover_adb_host(
self.hass, self._entry.data.get(CONF_ANDROIDTV_ENTITY)
)
port = self._entry.options.get(CONF_ADB_PORT, DEFAULT_ADB_PORT)
if not host: