Use DataStore preference for imperial units
This commit is contained in:
parent
1d589e5246
commit
8969d77231
@ -1,11 +1,13 @@
|
|||||||
package de.mm20.launcher2.ui.launcher.widgets.weather
|
package de.mm20.launcher2.ui.launcher.widgets.weather
|
||||||
|
|
||||||
import androidx.lifecycle.*
|
import androidx.lifecycle.*
|
||||||
|
import de.mm20.launcher2.preferences.LauncherDataStore
|
||||||
import de.mm20.launcher2.preferences.LauncherPreferences
|
import de.mm20.launcher2.preferences.LauncherPreferences
|
||||||
import de.mm20.launcher2.weather.DailyForecast
|
import de.mm20.launcher2.weather.DailyForecast
|
||||||
import de.mm20.launcher2.weather.Forecast
|
import de.mm20.launcher2.weather.Forecast
|
||||||
import de.mm20.launcher2.weather.WeatherRepository
|
import de.mm20.launcher2.weather.WeatherRepository
|
||||||
import kotlinx.coroutines.flow.collectLatest
|
import kotlinx.coroutines.flow.collectLatest
|
||||||
|
import kotlinx.coroutines.flow.map
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.component.inject
|
import org.koin.core.component.inject
|
||||||
@ -14,6 +16,8 @@ import kotlin.math.min
|
|||||||
class WeatherWidgetWM : ViewModel(), KoinComponent {
|
class WeatherWidgetWM : ViewModel(), KoinComponent {
|
||||||
private val weatherRepository: WeatherRepository by inject()
|
private val weatherRepository: WeatherRepository by inject()
|
||||||
|
|
||||||
|
private val dataStore: LauncherDataStore by inject()
|
||||||
|
|
||||||
private var selectedDayIndex = 0
|
private var selectedDayIndex = 0
|
||||||
set(value) {
|
set(value) {
|
||||||
field = min(value, forecasts.lastIndex)
|
field = min(value, forecasts.lastIndex)
|
||||||
@ -55,7 +59,7 @@ class WeatherWidgetWM : ViewModel(), KoinComponent {
|
|||||||
val currentDayForecasts = MutableLiveData<List<Forecast>>(emptyList())
|
val currentDayForecasts = MutableLiveData<List<Forecast>>(emptyList())
|
||||||
val currentDailyForecast = MutableLiveData<DailyForecast>(null)
|
val currentDailyForecast = MutableLiveData<DailyForecast>(null)
|
||||||
|
|
||||||
val imperialUnits = MutableLiveData(LauncherPreferences.instance.imperialUnits)
|
val imperialUnits = dataStore.data.map { it.weather.imperialUnits }.asLiveData()
|
||||||
|
|
||||||
fun selectDay(index: Int) {
|
fun selectDay(index: Int) {
|
||||||
selectedDayIndex = min(index, forecasts.lastIndex)
|
selectedDayIndex = min(index, forecasts.lastIndex)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user