From 2a01bccb62f47ab222bfe4a8f1f6d798a515c7ee Mon Sep 17 00:00:00 2001 From: MM20 <15646950+MM2-0@users.noreply.github.com> Date: Mon, 3 Jan 2022 22:51:55 +0100 Subject: [PATCH] Add debug options to weather settings screen --- .../launcher2/ui/settings/weather/WeatherScreen.kt | 13 +++++++++++++ .../ui/settings/weather/WeatherScreenVM.kt | 4 ++++ .../de/mm20/launcher2/weather/WeatherRepository.kt | 10 ++++++++++ 3 files changed, 27 insertions(+) diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreen.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreen.kt index df885d72..72144dfe 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreen.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreen.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.lifecycle.viewmodel.compose.viewModel import de.mm20.launcher2.preferences.Settings.WeatherSettings.WeatherProvider +import de.mm20.launcher2.ui.BuildConfig import de.mm20.launcher2.ui.R import de.mm20.launcher2.ui.component.MissingPermissionBanner import de.mm20.launcher2.ui.component.preferences.* @@ -108,6 +109,18 @@ fun WeatherScreen() { ) } } + if (BuildConfig.DEBUG) { + item { + PreferenceCategory(stringResource(R.string.preference_category_debug)) { + Preference( + "Clear weather data", + summary = "Remove weather data from database", + onClick = { + viewModel.clearWeatherData() + }) + } + } + } } } diff --git a/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreenVM.kt b/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreenVM.kt index af52e0e6..88109f3f 100644 --- a/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreenVM.kt +++ b/ui/src/main/java/de/mm20/launcher2/ui/settings/weather/WeatherScreenVM.kt @@ -92,4 +92,8 @@ class WeatherScreenVM : ViewModel(), KoinComponent { } } + fun clearWeatherData() { + repository.clearForecasts() + } + } \ 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 c399328c..7cdd5088 100644 --- a/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt +++ b/weather/src/main/java/de/mm20/launcher2/weather/WeatherRepository.kt @@ -32,6 +32,8 @@ interface WeatherRepository { fun selectProvider(provider: WeatherSettings.WeatherProvider) val selectedProvider: Flow + + fun clearForecasts() } class WeatherRepositoryImpl( @@ -174,6 +176,14 @@ class WeatherRepositoryImpl( .build() WorkManager.getInstance(context).enqueue(weatherRequest) } + + override fun clearForecasts() { + scope.launch { + withContext(Dispatchers.IO) { + database.weatherDao().deleteAll() + } + } + } } class WeatherUpdateWorker(val context: Context, params: WorkerParameters) :