mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 20:27:08 +00:00
Ensure speedtest cancels the listener on options update (#39062)
This commit is contained in:
parent
fec4966ee0
commit
b0974d89a6
@ -11,7 +11,7 @@ from homeassistant.const import (
|
|||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
EVENT_HOMEASSISTANT_STARTED,
|
EVENT_HOMEASSISTANT_STARTED,
|
||||||
)
|
)
|
||||||
from homeassistant.core import CoreState
|
from homeassistant.core import CoreState, callback
|
||||||
from homeassistant.exceptions import ConfigEntryNotReady
|
from homeassistant.exceptions import ConfigEntryNotReady
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
@ -108,6 +108,8 @@ async def async_unload_entry(hass, config_entry):
|
|||||||
"""Unload SpeedTest Entry from config_entry."""
|
"""Unload SpeedTest Entry from config_entry."""
|
||||||
hass.services.async_remove(DOMAIN, SPEED_TEST_SERVICE)
|
hass.services.async_remove(DOMAIN, SPEED_TEST_SERVICE)
|
||||||
|
|
||||||
|
hass.data[DOMAIN].async_unload()
|
||||||
|
|
||||||
await hass.config_entries.async_forward_entry_unload(config_entry, "sensor")
|
await hass.config_entries.async_forward_entry_unload(config_entry, "sensor")
|
||||||
|
|
||||||
hass.data.pop(DOMAIN)
|
hass.data.pop(DOMAIN)
|
||||||
@ -124,6 +126,7 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator):
|
|||||||
self.config_entry = config_entry
|
self.config_entry = config_entry
|
||||||
self.api = None
|
self.api = None
|
||||||
self.servers = {}
|
self.servers = {}
|
||||||
|
self._unsub_update_listener = None
|
||||||
super().__init__(
|
super().__init__(
|
||||||
self.hass, _LOGGER, name=DOMAIN, update_method=self.async_update,
|
self.hass, _LOGGER, name=DOMAIN, update_method=self.async_update,
|
||||||
)
|
)
|
||||||
@ -196,7 +199,17 @@ class SpeedTestDataCoordinator(DataUpdateCoordinator):
|
|||||||
|
|
||||||
self.hass.services.async_register(DOMAIN, SPEED_TEST_SERVICE, request_update)
|
self.hass.services.async_register(DOMAIN, SPEED_TEST_SERVICE, request_update)
|
||||||
|
|
||||||
self.config_entry.add_update_listener(options_updated_listener)
|
self._unsub_update_listener = self.config_entry.add_update_listener(
|
||||||
|
options_updated_listener
|
||||||
|
)
|
||||||
|
|
||||||
|
@callback
|
||||||
|
def async_unload(self):
|
||||||
|
"""Unload the coordinator."""
|
||||||
|
if not self._unsub_update_listener:
|
||||||
|
return
|
||||||
|
self._unsub_update_listener()
|
||||||
|
self._unsub_update_listener = None
|
||||||
|
|
||||||
|
|
||||||
async def options_updated_listener(hass, entry):
|
async def options_updated_listener(hass, entry):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user