diff --git a/app/src/main/java/com/github/libretube/ui/models/HomeViewModel.kt b/app/src/main/java/com/github/libretube/ui/models/HomeViewModel.kt index 1e90f9736..412224704 100644 --- a/app/src/main/java/com/github/libretube/ui/models/HomeViewModel.kt +++ b/app/src/main/java/com/github/libretube/ui/models/HomeViewModel.kt @@ -26,26 +26,21 @@ import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext class HomeViewModel: ViewModel() { private val hideWatched get() = PreferenceHelper.getBoolean(HIDE_WATCHED_FROM_FEED, false) val trending: MutableLiveData> = MutableLiveData(null) - val feed: MutableLiveData> = MutableLiveData(null) - val bookmarks: MutableLiveData> = MutableLiveData(null) - val playlists: MutableLiveData> = MutableLiveData(null) - val continueWatching: MutableLiveData> = MutableLiveData(null) - val isLoading: MutableLiveData = MutableLiveData(true) - val loadedSuccessfully: MutableLiveData = MutableLiveData(false) + private val sections get() = listOf(trending, feed, bookmarks, playlists, continueWatching) + private var loadHomeJob: Job? = null fun loadHomeFeed( @@ -66,10 +61,7 @@ class HomeViewModel: ViewModel() { async { if (visibleItems.contains(PLAYLISTS)) loadPlaylists() }, async { if (visibleItems.contains(WATCHING)) loadVideosToContinueWatching() } ) - loadedSuccessfully.value = - (!trending.value.isNullOrEmpty()) || (!feed.value.isNullOrEmpty()) || - (!bookmarks.value.isNullOrEmpty()) || (!playlists.value.isNullOrEmpty()) || - (!continueWatching.value.isNullOrEmpty()) + loadedSuccessfully.value = sections.any { !it.value.isNullOrEmpty() } isLoading.value = false }