diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt index 7e4798a5..8cc82354 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreen.kt @@ -29,12 +29,15 @@ fun WeatherWidgetSettingsScreen() { val weatherProvider by viewModel.weatherProvider.observeAsState() ListPreference( title = stringResource(R.string.preference_weather_provider), - items = listOf( - stringResource(R.string.provider_metno) to WeatherProvider.MetNo, - stringResource(R.string.provider_openweathermap) to WeatherProvider.OpenWeatherMap, - stringResource(R.string.provider_here) to WeatherProvider.Here, - stringResource(R.string.provider_brightsky) to WeatherProvider.BrightSky, - ), + items = viewModel.availableProviders.map { + when (it) { + WeatherProvider.MetNo -> stringResource(R.string.provider_metno) + WeatherProvider.OpenWeatherMap -> stringResource(R.string.provider_openweathermap) + WeatherProvider.Here -> stringResource(R.string.provider_here) + WeatherProvider.BrightSky -> stringResource(R.string.provider_brightsky) + else -> "Unknown provider" + } to it + }, onValueChanged = { if (it != null) viewModel.setWeatherProvider(it) }, diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreenVM.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreenVM.kt index 5a5a04bd..26c48d3b 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreenVM.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/weatherwidget/WeatherWidgetSettingsScreenVM.kt @@ -23,6 +23,8 @@ class WeatherWidgetSettingsScreenVM : ViewModel(), KoinComponent { private val dataStore: LauncherDataStore by inject() private val permissionsManager: PermissionsManager by inject() + val availableProviders = repository.getAvailableProviders() + val imperialUnits = dataStore.data.map { it.weather.imperialUnits }.asLiveData() fun setImperialUnits(imperialUnits: Boolean) { viewModelScope.launch {