Re-request weather update after location permission has been granted

This commit is contained in:
MM20 2022-01-03 23:12:31 +01:00
parent e7b4a05685
commit d5cedb446e
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
2 changed files with 10 additions and 0 deletions

View File

@ -49,6 +49,7 @@ dependencies {
implementation(project(":ktx"))
implementation(project(":crashreporter"))
implementation(project(":preferences"))
implementation(project(":permissions"))
implementation(project(":i18n"))
}

View File

@ -5,6 +5,8 @@ import android.util.Log
import androidx.datastore.dataStore
import androidx.work.*
import de.mm20.launcher2.database.AppDatabase
import de.mm20.launcher2.permissions.PermissionGroup
import de.mm20.launcher2.permissions.PermissionsManager
import de.mm20.launcher2.preferences.LauncherDataStore
import de.mm20.launcher2.preferences.Settings.WeatherSettings
import kotlinx.coroutines.*
@ -46,6 +48,10 @@ class WeatherRepositoryImpl(
private var provider: WeatherProvider<out WeatherLocation>
private val permissionsManager: PermissionsManager by inject()
private val hasLocationPermission = permissionsManager.hasPermission(PermissionGroup.Location)
override val selectedProvider = dataStore.data.map { it.weather.provider }
override val forecasts: Flow<List<DailyForecast>>
@ -126,6 +132,9 @@ class WeatherRepositoryImpl(
providerSetting = it
}
}
hasLocationPermission.collectLatest {
if(it) requestUpdate()
}
}
}