From d5cedb446e8d5741f49d49d0debf2bf91547d008 Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Mon, 3 Jan 2022 23:12:31 +0100 Subject: [PATCH] Re-request weather update after location permission has been granted --- weather/build.gradle.kts | 1 + .../java/de/mm20/launcher2/weather/WeatherRepository.kt | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/weather/build.gradle.kts b/weather/build.gradle.kts index f1fdf3ca..e9e9dde8 100644 --- a/weather/build.gradle.kts +++ b/weather/build.gradle.kts @@ -49,6 +49,7 @@ dependencies { implementation(project(":ktx")) implementation(project(":crashreporter")) implementation(project(":preferences")) + implementation(project(":permissions")) implementation(project(":i18n")) } \ No newline at end of file diff --git a/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt b/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt index 7cdd5088..593ea3a4 100644 --- a/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt +++ b/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt @@ -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 + 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> @@ -126,6 +132,9 @@ class WeatherRepositoryImpl( providerSetting = it } } + hasLocationPermission.collectLatest { + if(it) requestUpdate() + } } }