Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Purpose
App Intents may launch the app without any scene being created. The way the app initializes the core services (data manager, library service, player manager, etc) does not work properly in this scenario, as it was tied to the lifecycle of the scenes (be it through the main app, or the CarPlay interface)
This PR reworks how the core services are created into an async task, and the scenes now await for this task to finish, and handle any errors that were thrown. We also use
AppDependencyManager
to mark dependencies that can be used in the app intents