mirror of
https://github.com/home-assistant/core.git
synced 2025-07-31 17:18:23 +00:00
Simplify tracker class
This commit is contained in:
parent
695f47c5fc
commit
2d931c56b1
@ -646,10 +646,10 @@ class TargetSelectorStateChangeTracker:
|
||||
self._state_change_unsub: CALLBACK_TYPE | None = None
|
||||
self._registry_unsubs: list[CALLBACK_TYPE] = []
|
||||
|
||||
self._setup_tracking()
|
||||
self._setup_registry_listeners()
|
||||
self._track_entities_state_change()
|
||||
|
||||
def _track_entities_state_change(self) -> CALLBACK_TYPE:
|
||||
def _track_entities_state_change(self) -> None:
|
||||
"""Set up state change tracking for currently selected entities."""
|
||||
selected = async_extract_referenced_entity_ids(
|
||||
self._hass, self._selector_data, expand_group=False
|
||||
@ -667,14 +667,10 @@ class TargetSelectorStateChangeTracker:
|
||||
tracked_entities = selected.referenced.union(selected.indirectly_referenced)
|
||||
|
||||
_LOGGER.debug("Tracking state changes for entities: %s", tracked_entities)
|
||||
return async_track_state_change_event(
|
||||
self._state_change_unsub = async_track_state_change_event(
|
||||
self._hass, tracked_entities, state_change_listener, job_type=self._job_type
|
||||
)
|
||||
|
||||
def _setup_tracking(self) -> None:
|
||||
"""Initialize state change tracking."""
|
||||
self._state_change_unsub = self._track_entities_state_change()
|
||||
|
||||
def _setup_registry_listeners(self) -> None:
|
||||
"""Set up listeners for registry changes that require resubscription."""
|
||||
|
||||
@ -683,7 +679,7 @@ class TargetSelectorStateChangeTracker:
|
||||
"""Resubscribe to state change events when registry changes."""
|
||||
if self._state_change_unsub:
|
||||
self._state_change_unsub()
|
||||
self._state_change_unsub = self._track_entities_state_change()
|
||||
self._track_entities_state_change()
|
||||
|
||||
self._registry_unsubs = [
|
||||
self._hass.bus.async_listen(
|
||||
|
Loading…
x
Reference in New Issue
Block a user