Refresh guide in background when returning to page

This commit is contained in:
Damontecres 2025-10-22 18:19:45 -04:00
parent a0e184ab28
commit f5c7e6b6cd
No known key found for this signature in database
2 changed files with 10 additions and 5 deletions

View file

@ -50,8 +50,8 @@ class LiveTvViewModel
) : ViewModel() {
val loading = MutableLiveData<LoadingState>(LoadingState.Pending)
val start =
LocalDateTime.now().truncatedTo(ChronoUnit.HOURS)
lateinit var start: LocalDateTime
private set
private lateinit var channelsIdToIndex: Map<UUID, Int>
private val mutex = Mutex()
@ -62,8 +62,11 @@ class LiveTvViewModel
val fetchingItem = MutableLiveData<LoadingState>(LoadingState.Pending)
val fetchedItem = MutableLiveData<BaseItem?>(null)
fun init() {
// loading.value = LoadingState.Loading
fun init(firstLoad: Boolean) {
start = LocalDateTime.now().truncatedTo(ChronoUnit.HOURS)
if (!firstLoad) {
loading.value = LoadingState.Loading
}
viewModelScope.launch(Dispatchers.IO + LoadingExceptionHandler(loading, "Could not fetch channels")) {
val channelData by api.liveTvApi.getLiveTvChannels(
GetLiveTvChannelsRequest(

View file

@ -72,8 +72,10 @@ fun TvGuideGrid(
modifier: Modifier = Modifier,
viewModel: LiveTvViewModel = hiltViewModel(),
) {
var firstLoad by rememberSaveable { mutableStateOf(true) }
LaunchedEffect(Unit) {
viewModel.init()
viewModel.init(firstLoad)
firstLoad = false
}
val loading by viewModel.loading.observeAsState(LoadingState.Pending)
val channels by viewModel.channels.observeAsState(listOf())