DefaultVoicesScreenViewModel

Default implementation of VoicesScreenViewModel.

Observes voice packages from VoiceManager, tracks download progress, and persists the selected voice via NavigationSettingsRepository.

Important: Call onCleared when the screen is destroyed to release resources.

Parameters

settingsRepository

Repository for persisting the selected voice.

Constructors

Link copied to clipboard
constructor(settingsRepository: NavigationSettingsRepository)

Properties

Link copied to clipboard
open override val availableLanguages: StateFlow<List<String>>

Distinct languages available across all compatible voices.

Link copied to clipboard
open override val selectedLanguage: StateFlow<String?>

Currently selected language filter, or null for all languages.

Link copied to clipboard
open override val voices: StateFlow<List<VoiceUiModel>>

All compatible voices, filtered by selectedLanguage when set.

Functions

Link copied to clipboard
open override fun install(voiceName: String)

Start downloading a voice package.

Link copied to clipboard
open override fun onCleared()

Release resources. Must be called when the screen is destroyed.

Link copied to clipboard
open override fun playWelcome(voiceName: String)

Play the welcome/demo audio for a voice.

Link copied to clipboard
open override fun selectLanguage(language: String?)

Filter voices by language. Pass null to show all languages.

Link copied to clipboard
open override fun selectVoice(voiceName: String)

Select a voice for navigation by name. Persists the choice.

Link copied to clipboard
open override fun uninstall(voiceName: String)

Remove a downloaded voice package.