mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +02:00
Refresh guide in background when returning to page
This commit is contained in:
parent
a0e184ab28
commit
f5c7e6b6cd
2 changed files with 10 additions and 5 deletions
|
|
@ -50,8 +50,8 @@ class LiveTvViewModel
|
||||||
) : ViewModel() {
|
) : ViewModel() {
|
||||||
val loading = MutableLiveData<LoadingState>(LoadingState.Pending)
|
val loading = MutableLiveData<LoadingState>(LoadingState.Pending)
|
||||||
|
|
||||||
val start =
|
lateinit var start: LocalDateTime
|
||||||
LocalDateTime.now().truncatedTo(ChronoUnit.HOURS)
|
private set
|
||||||
private lateinit var channelsIdToIndex: Map<UUID, Int>
|
private lateinit var channelsIdToIndex: Map<UUID, Int>
|
||||||
private val mutex = Mutex()
|
private val mutex = Mutex()
|
||||||
|
|
||||||
|
|
@ -62,8 +62,11 @@ class LiveTvViewModel
|
||||||
val fetchingItem = MutableLiveData<LoadingState>(LoadingState.Pending)
|
val fetchingItem = MutableLiveData<LoadingState>(LoadingState.Pending)
|
||||||
val fetchedItem = MutableLiveData<BaseItem?>(null)
|
val fetchedItem = MutableLiveData<BaseItem?>(null)
|
||||||
|
|
||||||
fun init() {
|
fun init(firstLoad: Boolean) {
|
||||||
// loading.value = LoadingState.Loading
|
start = LocalDateTime.now().truncatedTo(ChronoUnit.HOURS)
|
||||||
|
if (!firstLoad) {
|
||||||
|
loading.value = LoadingState.Loading
|
||||||
|
}
|
||||||
viewModelScope.launch(Dispatchers.IO + LoadingExceptionHandler(loading, "Could not fetch channels")) {
|
viewModelScope.launch(Dispatchers.IO + LoadingExceptionHandler(loading, "Could not fetch channels")) {
|
||||||
val channelData by api.liveTvApi.getLiveTvChannels(
|
val channelData by api.liveTvApi.getLiveTvChannels(
|
||||||
GetLiveTvChannelsRequest(
|
GetLiveTvChannelsRequest(
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,10 @@ fun TvGuideGrid(
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
viewModel: LiveTvViewModel = hiltViewModel(),
|
viewModel: LiveTvViewModel = hiltViewModel(),
|
||||||
) {
|
) {
|
||||||
|
var firstLoad by rememberSaveable { mutableStateOf(true) }
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
viewModel.init()
|
viewModel.init(firstLoad)
|
||||||
|
firstLoad = false
|
||||||
}
|
}
|
||||||
val loading by viewModel.loading.observeAsState(LoadingState.Pending)
|
val loading by viewModel.loading.observeAsState(LoadingState.Pending)
|
||||||
val channels by viewModel.channels.observeAsState(listOf())
|
val channels by viewModel.channels.observeAsState(listOf())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue