Updated apps

This commit is contained in:
2026-07-09 13:30:12 -04:00
parent 0f7585754d
commit 6cc7212cef
262 changed files with 16124 additions and 107 deletions
@@ -0,0 +1,78 @@
"""Options flow for Amazon Order Status integration."""
from homeassistant import config_entries
import voluptuous as vol
from homeassistant.helpers import config_validation as cv
from .const import DOMAIN, CONF_IMAP_FOLDER
class AmazonOrderStatusOptionsFlow(config_entries.OptionsFlow):
"""Handle an options flow for Amazon Order Status."""
def __init__(self, config_entry: config_entries.ConfigEntry):
self._config_entry = config_entry
async def async_step_init(self, user_input=None):
"""Manage the initial step of the options flow."""
if user_input is not None:
# Merge new options with existing ones
new_options = dict(self._config_entry.options)
new_options.update(user_input)
# Update the config entry
self.hass.config_entries.async_update_entry(
self._config_entry, options=new_options
)
# Apply updates to the coordinator if it exists
coordinator = self.hass.data.get(DOMAIN, {}).get("coordinator")
if coordinator:
if "delivered_retention_days" in user_input:
coordinator.async_set_retention_days(
user_input["delivered_retention_days"]
)
if "update_interval" in user_input:
coordinator.async_update_interval(
user_input["update_interval"]
)
if "mark_as_read" in user_input:
coordinator.async_set_mark_as_read(
user_input["mark_as_read"]
)
if CONF_IMAP_FOLDER in user_input:
coordinator.async_set_imap_folder(
user_input[CONF_IMAP_FOLDER]
)
return self.async_create_entry(title="", data=user_input)
# Current options to use as defaults
options = self._config_entry.options
# Standard vol.Schema
schema = vol.Schema(
{
vol.Required(
"delivered_retention_days",
default=options.get("delivered_retention_days", 30),
): cv.positive_int,
vol.Required(
"update_interval",
default=options.get("update_interval", 5),
): cv.positive_int,
vol.Required(
"mark_as_read",
default=options.get("mark_as_read", True),
): cv.boolean,
vol.Optional(
CONF_IMAP_FOLDER,
default=options.get(CONF_IMAP_FOLDER, ""),
): str,
}
)
return self.async_show_form(
step_id="init",
data_schema=schema,
)