Remove weather providers that are not available from settings screen

This commit is contained in:
MM20 2022-01-15 20:22:58 +01:00
parent 779e28e217
commit 1cc0d64020
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 11 additions and 6 deletions

View File

@ -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)
},

View File

@ -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 {