Avoid creating tasks to update universal media player (#116350)

* Avoid creating tasks to update universal media player

Nothing was being awaited in async_update. This entity has polling
disabled and there was no reason to implement manual updates since
the state is always coming from other entities

* manual update
This commit is contained in:
J. Nick Koston 2024-04-28 17:17:26 -05:00 committed by GitHub
parent e215270c05
commit b8ddf51e28
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -162,7 +162,7 @@ class UniversalMediaPlayer(MediaPlayerEntity):
): ):
"""Initialize the Universal media device.""" """Initialize the Universal media device."""
self.hass = hass self.hass = hass
self._name = config.get(CONF_NAME) self._attr_name = config.get(CONF_NAME)
self._children = config.get(CONF_CHILDREN) self._children = config.get(CONF_CHILDREN)
self._active_child_template = config.get(CONF_ACTIVE_CHILD_TEMPLATE) self._active_child_template = config.get(CONF_ACTIVE_CHILD_TEMPLATE)
self._active_child_template_result = None self._active_child_template_result = None
@ -189,7 +189,8 @@ class UniversalMediaPlayer(MediaPlayerEntity):
) -> None: ) -> None:
"""Update ha state when dependencies update.""" """Update ha state when dependencies update."""
self.async_set_context(event.context) self.async_set_context(event.context)
self.async_schedule_update_ha_state(True) self._async_update()
self.async_write_ha_state()
@callback @callback
def _async_on_template_update( def _async_on_template_update(
@ -213,7 +214,8 @@ class UniversalMediaPlayer(MediaPlayerEntity):
if event: if event:
self.async_set_context(event.context) self.async_set_context(event.context)
self.async_schedule_update_ha_state(True) self._async_update()
self.async_write_ha_state()
track_templates: list[TrackTemplate] = [] track_templates: list[TrackTemplate] = []
if self._state_template: if self._state_template:
@ -306,11 +308,6 @@ class UniversalMediaPlayer(MediaPlayerEntity):
return None return None
@property
def name(self):
"""Return the name of universal player."""
return self._name
@property @property
def assumed_state(self) -> bool: def assumed_state(self) -> bool:
"""Return True if unable to access real state of the entity.""" """Return True if unable to access real state of the entity."""
@ -659,7 +656,8 @@ class UniversalMediaPlayer(MediaPlayerEntity):
return await entity.async_browse_media(media_content_type, media_content_id) return await entity.async_browse_media(media_content_type, media_content_id)
raise NotImplementedError raise NotImplementedError
async def async_update(self) -> None: @callback
def _async_update(self) -> None:
"""Update state in HA.""" """Update state in HA."""
if self._active_child_template_result: if self._active_child_template_result:
self._child_state = self.hass.states.get(self._active_child_template_result) self._child_state = self.hass.states.get(self._active_child_template_result)
@ -676,3 +674,7 @@ class UniversalMediaPlayer(MediaPlayerEntity):
self._child_state = child_state self._child_state = child_state
else: else:
self._child_state = child_state self._child_state = child_state
async def async_update(self) -> None:
"""Manual update from API."""
self._async_update()