diff --git a/src/main/kotlin/ca/gosyer/ui/extensions/ExtensionsMenuViewModel.kt b/src/main/kotlin/ca/gosyer/ui/extensions/ExtensionsMenuViewModel.kt index 989a0c6d..f0ed4659 100644 --- a/src/main/kotlin/ca/gosyer/ui/extensions/ExtensionsMenuViewModel.kt +++ b/src/main/kotlin/ca/gosyer/ui/extensions/ExtensionsMenuViewModel.kt @@ -30,14 +30,13 @@ class ExtensionsMenuViewModel @Inject constructor( private val _enabledLangs = extensionPreferences.languages().asStateFlow() val enabledLangs = _enabledLangs.asStateFlow() - private lateinit var extensionList: List + private var extensionList: List? = null private val _extensions = MutableStateFlow(emptyMap>()) val extensions = _extensions.asStateFlow() private val _isLoading = MutableStateFlow(true) val isLoading = _isLoading.asStateFlow() - val searchQuery = MutableStateFlow(null) init { @@ -99,7 +98,7 @@ class ExtensionsMenuViewModel @Inject constructor( } } - fun getSourceLanguages() = extensionList.map { it.lang }.toSet() + fun getSourceLanguages() = extensionList?.map { it.lang }?.toSet().orEmpty() fun setEnabledLanguages(langs: Set) { info { langs } @@ -108,7 +107,8 @@ class ExtensionsMenuViewModel @Inject constructor( fun search(searchQuery: String) { this.searchQuery.value = searchQuery.takeUnless { it.isBlank() } - val extensionList = extensionList.filter { it.lang in enabledLangs.value } + val extensionList = extensionList?.filter { it.lang in enabledLangs.value } + .orEmpty() if (searchQuery.isBlank()) { _extensions.value = extensionList.splitSort() } else {