mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Use AndroidTVRemoteConfigEntry (#148046)
This commit is contained in:
parent
5f9cc0a5f6
commit
9c558fabcd
@ -5,26 +5,18 @@ from __future__ import annotations
|
|||||||
from asyncio import timeout
|
from asyncio import timeout
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from androidtvremote2 import (
|
from androidtvremote2 import CannotConnect, ConnectionClosed, InvalidAuth
|
||||||
AndroidTVRemote,
|
|
||||||
CannotConnect,
|
|
||||||
ConnectionClosed,
|
|
||||||
InvalidAuth,
|
|
||||||
)
|
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP, Platform
|
from homeassistant.const import CONF_HOST, CONF_NAME, EVENT_HOMEASSISTANT_STOP, Platform
|
||||||
from homeassistant.core import Event, HomeAssistant, callback
|
from homeassistant.core import Event, HomeAssistant, callback
|
||||||
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
|
from homeassistant.exceptions import ConfigEntryAuthFailed, ConfigEntryNotReady
|
||||||
|
|
||||||
from .helpers import create_api, get_enable_ime
|
from .helpers import AndroidTVRemoteConfigEntry, create_api, get_enable_ime
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
PLATFORMS: list[Platform] = [Platform.MEDIA_PLAYER, Platform.REMOTE]
|
PLATFORMS: list[Platform] = [Platform.MEDIA_PLAYER, Platform.REMOTE]
|
||||||
|
|
||||||
AndroidTVRemoteConfigEntry = ConfigEntry[AndroidTVRemote]
|
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant, entry: AndroidTVRemoteConfigEntry
|
hass: HomeAssistant, entry: AndroidTVRemoteConfigEntry
|
||||||
@ -82,13 +74,17 @@ async def async_setup_entry(
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
||||||
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
async def async_unload_entry(
|
||||||
|
hass: HomeAssistant, entry: AndroidTVRemoteConfigEntry
|
||||||
|
) -> bool:
|
||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
_LOGGER.debug("async_unload_entry: %s", entry.data)
|
_LOGGER.debug("async_unload_entry: %s", entry.data)
|
||||||
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
|
|
||||||
|
|
||||||
async def async_update_options(hass: HomeAssistant, entry: ConfigEntry) -> None:
|
async def async_update_options(
|
||||||
|
hass: HomeAssistant, entry: AndroidTVRemoteConfigEntry
|
||||||
|
) -> None:
|
||||||
"""Handle options update."""
|
"""Handle options update."""
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
"async_update_options: data: %s options: %s", entry.data, entry.options
|
"async_update_options: data: %s options: %s", entry.data, entry.options
|
||||||
|
@ -16,7 +16,6 @@ import voluptuous as vol
|
|||||||
|
|
||||||
from homeassistant.config_entries import (
|
from homeassistant.config_entries import (
|
||||||
SOURCE_REAUTH,
|
SOURCE_REAUTH,
|
||||||
ConfigEntry,
|
|
||||||
ConfigFlow,
|
ConfigFlow,
|
||||||
ConfigFlowResult,
|
ConfigFlowResult,
|
||||||
OptionsFlow,
|
OptionsFlow,
|
||||||
@ -33,7 +32,7 @@ from homeassistant.helpers.selector import (
|
|||||||
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo
|
from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo
|
||||||
|
|
||||||
from .const import CONF_APP_ICON, CONF_APP_NAME, CONF_APPS, CONF_ENABLE_IME, DOMAIN
|
from .const import CONF_APP_ICON, CONF_APP_NAME, CONF_APPS, CONF_ENABLE_IME, DOMAIN
|
||||||
from .helpers import create_api, get_enable_ime
|
from .helpers import AndroidTVRemoteConfigEntry, create_api, get_enable_ime
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -220,7 +219,7 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
@callback
|
@callback
|
||||||
def async_get_options_flow(
|
def async_get_options_flow(
|
||||||
config_entry: ConfigEntry,
|
config_entry: AndroidTVRemoteConfigEntry,
|
||||||
) -> AndroidTVRemoteOptionsFlowHandler:
|
) -> AndroidTVRemoteOptionsFlowHandler:
|
||||||
"""Create the options flow."""
|
"""Create the options flow."""
|
||||||
return AndroidTVRemoteOptionsFlowHandler(config_entry)
|
return AndroidTVRemoteOptionsFlowHandler(config_entry)
|
||||||
@ -229,7 +228,7 @@ class AndroidTVRemoteConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
class AndroidTVRemoteOptionsFlowHandler(OptionsFlow):
|
class AndroidTVRemoteOptionsFlowHandler(OptionsFlow):
|
||||||
"""Android TV Remote options flow."""
|
"""Android TV Remote options flow."""
|
||||||
|
|
||||||
def __init__(self, config_entry: ConfigEntry) -> None:
|
def __init__(self, config_entry: AndroidTVRemoteConfigEntry) -> None:
|
||||||
"""Initialize options flow."""
|
"""Initialize options flow."""
|
||||||
self._apps: dict[str, Any] = dict(config_entry.options.get(CONF_APPS, {}))
|
self._apps: dict[str, Any] = dict(config_entry.options.get(CONF_APPS, {}))
|
||||||
self._conf_app_id: str | None = None
|
self._conf_app_id: str | None = None
|
||||||
|
@ -8,7 +8,7 @@ from homeassistant.components.diagnostics import async_redact_data
|
|||||||
from homeassistant.const import CONF_HOST, CONF_MAC
|
from homeassistant.const import CONF_HOST, CONF_MAC
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from . import AndroidTVRemoteConfigEntry
|
from .helpers import AndroidTVRemoteConfigEntry
|
||||||
|
|
||||||
TO_REDACT = {CONF_HOST, CONF_MAC}
|
TO_REDACT = {CONF_HOST, CONF_MAC}
|
||||||
|
|
||||||
|
@ -6,7 +6,6 @@ from typing import Any
|
|||||||
|
|
||||||
from androidtvremote2 import AndroidTVRemote, ConnectionClosed
|
from androidtvremote2 import AndroidTVRemote, ConnectionClosed
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
|
||||||
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME
|
from homeassistant.const import CONF_HOST, CONF_MAC, CONF_NAME
|
||||||
from homeassistant.core import callback
|
from homeassistant.core import callback
|
||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
@ -14,6 +13,7 @@ from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC, Device
|
|||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
from .const import CONF_APPS, DOMAIN
|
from .const import CONF_APPS, DOMAIN
|
||||||
|
from .helpers import AndroidTVRemoteConfigEntry
|
||||||
|
|
||||||
|
|
||||||
class AndroidTVRemoteBaseEntity(Entity):
|
class AndroidTVRemoteBaseEntity(Entity):
|
||||||
@ -23,7 +23,9 @@ class AndroidTVRemoteBaseEntity(Entity):
|
|||||||
_attr_has_entity_name = True
|
_attr_has_entity_name = True
|
||||||
_attr_should_poll = False
|
_attr_should_poll = False
|
||||||
|
|
||||||
def __init__(self, api: AndroidTVRemote, config_entry: ConfigEntry) -> None:
|
def __init__(
|
||||||
|
self, api: AndroidTVRemote, config_entry: AndroidTVRemoteConfigEntry
|
||||||
|
) -> None:
|
||||||
"""Initialize the entity."""
|
"""Initialize the entity."""
|
||||||
self._api = api
|
self._api = api
|
||||||
self._host = config_entry.data[CONF_HOST]
|
self._host = config_entry.data[CONF_HOST]
|
||||||
|
@ -10,6 +10,8 @@ from homeassistant.helpers.storage import STORAGE_DIR
|
|||||||
|
|
||||||
from .const import CONF_ENABLE_IME, CONF_ENABLE_IME_DEFAULT_VALUE
|
from .const import CONF_ENABLE_IME, CONF_ENABLE_IME_DEFAULT_VALUE
|
||||||
|
|
||||||
|
AndroidTVRemoteConfigEntry = ConfigEntry[AndroidTVRemote]
|
||||||
|
|
||||||
|
|
||||||
def create_api(hass: HomeAssistant, host: str, enable_ime: bool) -> AndroidTVRemote:
|
def create_api(hass: HomeAssistant, host: str, enable_ime: bool) -> AndroidTVRemote:
|
||||||
"""Create an AndroidTVRemote instance."""
|
"""Create an AndroidTVRemote instance."""
|
||||||
@ -23,6 +25,6 @@ def create_api(hass: HomeAssistant, host: str, enable_ime: bool) -> AndroidTVRem
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def get_enable_ime(entry: ConfigEntry) -> bool:
|
def get_enable_ime(entry: AndroidTVRemoteConfigEntry) -> bool:
|
||||||
"""Get value of enable_ime option or its default value."""
|
"""Get value of enable_ime option or its default value."""
|
||||||
return entry.options.get(CONF_ENABLE_IME, CONF_ENABLE_IME_DEFAULT_VALUE)
|
return entry.options.get(CONF_ENABLE_IME, CONF_ENABLE_IME_DEFAULT_VALUE)
|
||||||
|
@ -20,9 +20,9 @@ from homeassistant.core import HomeAssistant, callback
|
|||||||
from homeassistant.exceptions import HomeAssistantError
|
from homeassistant.exceptions import HomeAssistantError
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from . import AndroidTVRemoteConfigEntry
|
|
||||||
from .const import CONF_APP_ICON, CONF_APP_NAME, DOMAIN
|
from .const import CONF_APP_ICON, CONF_APP_NAME, DOMAIN
|
||||||
from .entity import AndroidTVRemoteBaseEntity
|
from .entity import AndroidTVRemoteBaseEntity
|
||||||
|
from .helpers import AndroidTVRemoteConfigEntry
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
|
|
||||||
|
@ -20,9 +20,9 @@ from homeassistant.components.remote import (
|
|||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback
|
||||||
|
|
||||||
from . import AndroidTVRemoteConfigEntry
|
|
||||||
from .const import CONF_APP_NAME
|
from .const import CONF_APP_NAME
|
||||||
from .entity import AndroidTVRemoteBaseEntity
|
from .entity import AndroidTVRemoteBaseEntity
|
||||||
|
from .helpers import AndroidTVRemoteConfigEntry
|
||||||
|
|
||||||
PARALLEL_UPDATES = 0
|
PARALLEL_UPDATES = 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user