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() val weatherProvider by viewModel.weatherProvider.observeAsState()
ListPreference( ListPreference(
title = stringResource(R.string.preference_weather_provider), title = stringResource(R.string.preference_weather_provider),
items = listOf( items = viewModel.availableProviders.map {
stringResource(R.string.provider_metno) to WeatherProvider.MetNo, when (it) {
stringResource(R.string.provider_openweathermap) to WeatherProvider.OpenWeatherMap, WeatherProvider.MetNo -> stringResource(R.string.provider_metno)
stringResource(R.string.provider_here) to WeatherProvider.Here, WeatherProvider.OpenWeatherMap -> stringResource(R.string.provider_openweathermap)
stringResource(R.string.provider_brightsky) to WeatherProvider.BrightSky, WeatherProvider.Here -> stringResource(R.string.provider_here)
), WeatherProvider.BrightSky -> stringResource(R.string.provider_brightsky)
else -> "Unknown provider"
} to it
},
onValueChanged = { onValueChanged = {
if (it != null) viewModel.setWeatherProvider(it) if (it != null) viewModel.setWeatherProvider(it)
}, },

View File

@ -23,6 +23,8 @@ class WeatherWidgetSettingsScreenVM : ViewModel(), KoinComponent {
private val dataStore: LauncherDataStore by inject() private val dataStore: LauncherDataStore by inject()
private val permissionsManager: PermissionsManager by inject() private val permissionsManager: PermissionsManager by inject()
val availableProviders = repository.getAvailableProviders()
val imperialUnits = dataStore.data.map { it.weather.imperialUnits }.asLiveData() val imperialUnits = dataStore.data.map { it.weather.imperialUnits }.asLiveData()
fun setImperialUnits(imperialUnits: Boolean) { fun setImperialUnits(imperialUnits: Boolean) {
viewModelScope.launch { viewModelScope.launch {