Extracted the PreviewPreinstalling service in the Sample app target into its own file and declared it as development asset.

This commit is contained in:
2026-07-05 16:29:28 +02:00
parent 83ac1cf4e4
commit f1e4b59809
6 changed files with 68 additions and 33 deletions
@@ -15,6 +15,9 @@ extension ContentView {
/// Every picked locale kicks off ``preinstall()``, a cancellable task that preinstalls the locale's speech model assets through the
/// preinstalling service cancelling any download still in flight for a previously picked locale. The service's started, cancelled, and
/// failed download events are mapped to the transient, self-dismissing notifications of the ``notifier``.
///
/// Every collaborator is injected at initialization behind its protocol, defaulting to the on-device services: the app runs the model
/// against the real backends, while its unit tests and previews attach mocks and dummies without touching this type.
@MainActor
@Observable
final class Model {
@@ -84,9 +87,10 @@ extension ContentView {
// MARK: Methods
/// Loads the locales the transcriber supports into ``locales``, sorted by their localized names, and aligns ``locale`` with the
/// supported equivalent of its current value falling back to the supported equivalent of a default locale when none exists
/// so the locale picker starts with a valid selection.
/// Loads the locales the transcriber supports resolved through the preinstalling service into ``locales``, sorted by their
/// localized names, and aligns ``locale`` with the supported equivalent of its current value falling back to the supported
/// equivalent of a default locale when none exists so the locale picker starts with a valid selection. It then kicks off the
/// preinstallation of the aligned locale's speech model assets.
func load() async {
locales =
await preinstaller