CONF_DEPRECATED_EQ_BASS,
CONF_DEPRECATED_EQ_MID,
CONF_DEPRECATED_EQ_TREBLE,
+ CONF_ONBOARD_DONE,
CONF_PLAYER_DSP,
CONF_PLAYERS,
CONF_PROVIDERS,
@property
def onboard_done(self) -> bool:
"""Return True if onboarding is done."""
- return len(self._data.get(CONF_PROVIDERS, {})) > 0
+ return self.get(CONF_ONBOARD_DONE, False)
async def close(self) -> None:
"""Handle logic on server stop."""
config = await self._update_provider_config(instance_id, values)
else:
config = await self._add_provider_config(provider_domain, values)
+ # mark onboard done whenever the (first) provider is added
+ # this will be replaced later by a more sophisticated onboarding process
+ self.set(CONF_ONBOARD_DONE, True)
# return full config, just in case
return await self.get_provider_config(config.instance_id)
for x in sample_rates
]
changed = True
+ # set 'onboard_done' flag if we have any (non default) provider configs
+ if not self._data.get(CONF_ONBOARD_DONE):
+ default_providers = {x.domain for x in self.mass.get_provider_manifests() if x.builtin}
+ for provider_config in self._data.get(CONF_PROVIDERS, {}).values():
+ if provider_config["domain"] not in default_providers:
+ self.set(CONF_ONBOARD_DONE, True)
+ changed = True
+ break
if changed:
await self._async_save()
limit_per_host=100,
),
)
+ # load all available providers from manifest files
+ await self.__load_provider_manifests()
# setup config controller first and fetch important config values
self.config = ConfigController(self)
await self.config.setup()
# not yet available while we're starting (or performing migrations)
self._register_api_commands()
await self.webserver.setup(await self.config.get_core_config("webserver"))
- # load all available providers from manifest files
- await self.__load_provider_manifests()
# setup discovery
await self._setup_discovery()
# load providers