mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Allow resetting filters for waze_travel_time (#88253)
* Allow resetting filters by using vol.Maybe * Fix return types * Use suggested values * Apply feedback * Apply nitpick
This commit is contained in:
parent
a478e278fd
commit
28d045cf75
@ -31,6 +31,19 @@ from .const import (
|
||||
)
|
||||
from .helpers import is_valid_config_entry
|
||||
|
||||
OPTIONS_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Optional(CONF_INCL_FILTER, default=""): cv.string,
|
||||
vol.Optional(CONF_EXCL_FILTER, default=""): cv.string,
|
||||
vol.Optional(CONF_REALTIME): cv.boolean,
|
||||
vol.Optional(CONF_VEHICLE_TYPE): vol.In(VEHICLE_TYPES),
|
||||
vol.Optional(CONF_UNITS): vol.In(UNITS),
|
||||
vol.Optional(CONF_AVOID_TOLL_ROADS): cv.boolean,
|
||||
vol.Optional(CONF_AVOID_SUBSCRIPTION_ROADS): cv.boolean,
|
||||
vol.Optional(CONF_AVOID_FERRIES): cv.boolean,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
def default_options(hass: HomeAssistant) -> dict[str, str | bool]:
|
||||
"""Get the default options."""
|
||||
@ -57,43 +70,8 @@ class WazeOptionsFlow(config_entries.OptionsFlow):
|
||||
|
||||
return self.async_show_form(
|
||||
step_id="init",
|
||||
data_schema=vol.Schema(
|
||||
{
|
||||
vol.Optional(
|
||||
CONF_INCL_FILTER,
|
||||
default=self.config_entry.options.get(CONF_INCL_FILTER, ""),
|
||||
): cv.string,
|
||||
vol.Optional(
|
||||
CONF_EXCL_FILTER,
|
||||
default=self.config_entry.options.get(CONF_EXCL_FILTER, ""),
|
||||
): cv.string,
|
||||
vol.Optional(
|
||||
CONF_REALTIME,
|
||||
default=self.config_entry.options[CONF_REALTIME],
|
||||
): cv.boolean,
|
||||
vol.Optional(
|
||||
CONF_VEHICLE_TYPE,
|
||||
default=self.config_entry.options[CONF_VEHICLE_TYPE],
|
||||
): vol.In(VEHICLE_TYPES),
|
||||
vol.Optional(
|
||||
CONF_UNITS,
|
||||
default=self.config_entry.options[CONF_UNITS],
|
||||
): vol.In(UNITS),
|
||||
vol.Optional(
|
||||
CONF_AVOID_TOLL_ROADS,
|
||||
default=self.config_entry.options[CONF_AVOID_TOLL_ROADS],
|
||||
): cv.boolean,
|
||||
vol.Optional(
|
||||
CONF_AVOID_SUBSCRIPTION_ROADS,
|
||||
default=self.config_entry.options[
|
||||
CONF_AVOID_SUBSCRIPTION_ROADS
|
||||
],
|
||||
): cv.boolean,
|
||||
vol.Optional(
|
||||
CONF_AVOID_FERRIES,
|
||||
default=self.config_entry.options[CONF_AVOID_FERRIES],
|
||||
): cv.boolean,
|
||||
}
|
||||
data_schema=self.add_suggested_values_to_schema(
|
||||
OPTIONS_SCHEMA, self.config_entry.options
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -60,8 +60,6 @@ async def async_setup_entry(
|
||||
name = config_entry.data.get(CONF_NAME, DEFAULT_NAME)
|
||||
|
||||
data = WazeTravelTimeData(
|
||||
None,
|
||||
None,
|
||||
region,
|
||||
config_entry,
|
||||
)
|
||||
@ -85,7 +83,14 @@ class WazeTravelTime(SensorEntity):
|
||||
configuration_url="https://www.waze.com",
|
||||
)
|
||||
|
||||
def __init__(self, unique_id, name, origin, destination, waze_data):
|
||||
def __init__(
|
||||
self,
|
||||
unique_id: str,
|
||||
name: str,
|
||||
origin: str,
|
||||
destination: str,
|
||||
waze_data: WazeTravelTimeData,
|
||||
) -> None:
|
||||
"""Initialize the Waze travel time sensor."""
|
||||
self._attr_unique_id = unique_id
|
||||
self._waze_data = waze_data
|
||||
@ -126,7 +131,7 @@ class WazeTravelTime(SensorEntity):
|
||||
"destination": self._waze_data.destination,
|
||||
}
|
||||
|
||||
async def first_update(self, _=None):
|
||||
async def first_update(self, _=None) -> None:
|
||||
"""Run first update and write state."""
|
||||
await self.hass.async_add_executor_job(self.update)
|
||||
self.async_write_ha_state()
|
||||
@ -142,12 +147,12 @@ class WazeTravelTime(SensorEntity):
|
||||
class WazeTravelTimeData:
|
||||
"""WazeTravelTime Data object."""
|
||||
|
||||
def __init__(self, origin, destination, region, config_entry):
|
||||
def __init__(self, region: str, config_entry: ConfigEntry) -> None:
|
||||
"""Set up WazeRouteCalculator."""
|
||||
self.origin = origin
|
||||
self.destination = destination
|
||||
self.region = region
|
||||
self.config_entry = config_entry
|
||||
self.origin: str | None = None
|
||||
self.destination: str | None = None
|
||||
self.duration = None
|
||||
self.distance = None
|
||||
self.route = None
|
||||
|
Loading…
x
Reference in New Issue
Block a user