mirror of
https://github.com/home-assistant/core.git
synced 2025-07-17 10:17:09 +00:00
Fix options flow bugs in Google/Waze Time Travel (#49866)
This commit is contained in:
parent
22bda640b0
commit
042099de14
@ -56,14 +56,17 @@ class GoogleOptionsFlow(config_entries.OptionsFlow):
|
|||||||
user_input[CONF_ARRIVAL_TIME] = time
|
user_input[CONF_ARRIVAL_TIME] = time
|
||||||
else:
|
else:
|
||||||
user_input[CONF_DEPARTURE_TIME] = time
|
user_input[CONF_DEPARTURE_TIME] = time
|
||||||
return self.async_create_entry(title="", data=user_input)
|
return self.async_create_entry(
|
||||||
|
title="",
|
||||||
|
data={k: v for k, v in user_input.items() if v not in (None, "")},
|
||||||
|
)
|
||||||
|
|
||||||
if CONF_ARRIVAL_TIME in self.config_entry.options:
|
if CONF_ARRIVAL_TIME in self.config_entry.options:
|
||||||
default_time_type = ARRIVAL_TIME
|
default_time_type = ARRIVAL_TIME
|
||||||
default_time = self.config_entry.options[CONF_ARRIVAL_TIME]
|
default_time = self.config_entry.options[CONF_ARRIVAL_TIME]
|
||||||
else:
|
else:
|
||||||
default_time_type = DEPARTURE_TIME
|
default_time_type = DEPARTURE_TIME
|
||||||
default_time = self.config_entry.options.get(CONF_ARRIVAL_TIME)
|
default_time = self.config_entry.options.get(CONF_ARRIVAL_TIME, "")
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="init",
|
step_id="init",
|
||||||
@ -75,10 +78,10 @@ class GoogleOptionsFlow(config_entries.OptionsFlow):
|
|||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_LANGUAGE,
|
CONF_LANGUAGE,
|
||||||
default=self.config_entry.options.get(CONF_LANGUAGE),
|
default=self.config_entry.options.get(CONF_LANGUAGE),
|
||||||
): vol.In(ALL_LANGUAGES),
|
): vol.In([None, *ALL_LANGUAGES]),
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_AVOID, default=self.config_entry.options.get(CONF_AVOID)
|
CONF_AVOID, default=self.config_entry.options.get(CONF_AVOID)
|
||||||
): vol.In(AVOID),
|
): vol.In([None, *AVOID]),
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_UNITS, default=self.config_entry.options[CONF_UNITS]
|
CONF_UNITS, default=self.config_entry.options[CONF_UNITS]
|
||||||
): vol.In(UNITS),
|
): vol.In(UNITS),
|
||||||
@ -89,17 +92,17 @@ class GoogleOptionsFlow(config_entries.OptionsFlow):
|
|||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_TRAFFIC_MODEL,
|
CONF_TRAFFIC_MODEL,
|
||||||
default=self.config_entry.options.get(CONF_TRAFFIC_MODEL),
|
default=self.config_entry.options.get(CONF_TRAFFIC_MODEL),
|
||||||
): vol.In(TRAVEL_MODEL),
|
): vol.In([None, *TRAVEL_MODEL]),
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_TRANSIT_MODE,
|
CONF_TRANSIT_MODE,
|
||||||
default=self.config_entry.options.get(CONF_TRANSIT_MODE),
|
default=self.config_entry.options.get(CONF_TRANSIT_MODE),
|
||||||
): vol.In(TRANSPORT_TYPE),
|
): vol.In([None, *TRANSPORT_TYPE]),
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_TRANSIT_ROUTING_PREFERENCE,
|
CONF_TRANSIT_ROUTING_PREFERENCE,
|
||||||
default=self.config_entry.options.get(
|
default=self.config_entry.options.get(
|
||||||
CONF_TRANSIT_ROUTING_PREFERENCE
|
CONF_TRANSIT_ROUTING_PREFERENCE
|
||||||
),
|
),
|
||||||
): vol.In(TRANSIT_PREFS),
|
): vol.In([None, *TRANSIT_PREFS]),
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -41,7 +41,10 @@ class WazeOptionsFlow(config_entries.OptionsFlow):
|
|||||||
async def async_step_init(self, user_input=None):
|
async def async_step_init(self, user_input=None):
|
||||||
"""Handle the initial step."""
|
"""Handle the initial step."""
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
return self.async_create_entry(title="", data=user_input)
|
return self.async_create_entry(
|
||||||
|
title="",
|
||||||
|
data={k: v for k, v in user_input.items() if v not in (None, "")},
|
||||||
|
)
|
||||||
|
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="init",
|
step_id="init",
|
||||||
@ -49,11 +52,11 @@ class WazeOptionsFlow(config_entries.OptionsFlow):
|
|||||||
{
|
{
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_INCL_FILTER,
|
CONF_INCL_FILTER,
|
||||||
default=self.config_entry.options.get(CONF_INCL_FILTER),
|
default=self.config_entry.options.get(CONF_INCL_FILTER, ""),
|
||||||
): cv.string,
|
): cv.string,
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_EXCL_FILTER,
|
CONF_EXCL_FILTER,
|
||||||
default=self.config_entry.options.get(CONF_EXCL_FILTER),
|
default=self.config_entry.options.get(CONF_EXCL_FILTER, ""),
|
||||||
): cv.string,
|
): cv.string,
|
||||||
vol.Optional(
|
vol.Optional(
|
||||||
CONF_REALTIME,
|
CONF_REALTIME,
|
||||||
|
@ -331,7 +331,11 @@ class WazeTravelTimeData:
|
|||||||
if excl_filter.lower() not in k.lower()
|
if excl_filter.lower() not in k.lower()
|
||||||
}
|
}
|
||||||
|
|
||||||
route = list(routes)[0]
|
if len(routes) > 0:
|
||||||
|
route = list(routes)[0]
|
||||||
|
else:
|
||||||
|
_LOGGER.warning("No routes found")
|
||||||
|
return
|
||||||
|
|
||||||
self.duration, distance = routes[route]
|
self.duration, distance = routes[route]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user