mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-09 16:11:20 +02:00
Use ApiRequestPager
This commit is contained in:
parent
9265a06fd7
commit
41e3a19cd4
5 changed files with 25 additions and 157 deletions
|
|
@ -52,7 +52,6 @@ import com.github.damontecres.dolphin.ui.playback.isForwardButton
|
|||
import com.github.damontecres.dolphin.ui.playback.isPlayKeyUp
|
||||
import com.github.damontecres.dolphin.ui.tryRequestFocus
|
||||
import com.github.damontecres.dolphin.util.ExceptionHandler
|
||||
import com.github.damontecres.dolphin.util.ItemPager
|
||||
import kotlinx.coroutines.launch
|
||||
import timber.log.Timber
|
||||
import kotlin.math.max
|
||||
|
|
@ -61,7 +60,7 @@ private const val DEBUG = false
|
|||
|
||||
@Composable
|
||||
fun CardGrid(
|
||||
pager: ItemPager,
|
||||
pager: List<BaseItem?>,
|
||||
itemOnClick: (BaseItem) -> Unit,
|
||||
longClicker: (BaseItem) -> Unit,
|
||||
letterPosition: suspend (Char) -> Int,
|
||||
|
|
|
|||
|
|
@ -16,8 +16,9 @@ import com.github.damontecres.dolphin.preferences.UserPreferences
|
|||
import com.github.damontecres.dolphin.ui.OneTimeLaunchedEffect
|
||||
import com.github.damontecres.dolphin.ui.nav.Destination
|
||||
import com.github.damontecres.dolphin.ui.nav.NavigationManager
|
||||
import com.github.damontecres.dolphin.util.ApiRequestPager
|
||||
import com.github.damontecres.dolphin.util.ExceptionHandler
|
||||
import com.github.damontecres.dolphin.util.ItemPager
|
||||
import com.github.damontecres.dolphin.util.GetItemsRequestHandler
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
@ -38,7 +39,7 @@ class CollectionFolderViewModel
|
|||
constructor(
|
||||
api: ApiClient,
|
||||
) : ItemViewModel<Library>(api) {
|
||||
val pager = MutableLiveData<ItemPager?>()
|
||||
val pager = MutableLiveData<ApiRequestPager<GetItemsRequest>?>()
|
||||
|
||||
override fun init(
|
||||
itemId: UUID,
|
||||
|
|
@ -81,7 +82,8 @@ class CollectionFolderViewModel
|
|||
sortOrder = listOf(SortOrder.ASCENDING),
|
||||
fields = listOf(ItemFields.PRIMARY_IMAGE_ASPECT_RATIO),
|
||||
)
|
||||
val newPager = ItemPager(api, request, viewModelScope)
|
||||
val newPager =
|
||||
ApiRequestPager(api, request, GetItemsRequestHandler, viewModelScope)
|
||||
newPager.init()
|
||||
pager.value = newPager
|
||||
}
|
||||
|
|
@ -162,7 +164,7 @@ fun TVShowCollectionDetails(
|
|||
navigationManager: NavigationManager,
|
||||
library: Library,
|
||||
item: BaseItem,
|
||||
pager: ItemPager,
|
||||
pager: List<BaseItem?>,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
val gridFocusRequester = remember { FocusRequester() }
|
||||
|
|
|
|||
|
|
@ -21,8 +21,9 @@ import com.github.damontecres.dolphin.preferences.UserPreferences
|
|||
import com.github.damontecres.dolphin.ui.cards.ItemRow
|
||||
import com.github.damontecres.dolphin.ui.nav.Destination
|
||||
import com.github.damontecres.dolphin.ui.nav.NavigationManager
|
||||
import com.github.damontecres.dolphin.util.ApiRequestPager
|
||||
import com.github.damontecres.dolphin.util.ExceptionHandler
|
||||
import com.github.damontecres.dolphin.util.ItemPager
|
||||
import com.github.damontecres.dolphin.util.GetItemsRequestHandler
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
@ -60,7 +61,13 @@ class SeasonViewModel
|
|||
fields = listOf(ItemFields.PRIMARY_IMAGE_ASPECT_RATIO, ItemFields.CHILD_COUNT),
|
||||
)
|
||||
val pager =
|
||||
ItemPager(api, request, viewModelScope, itemCount = item.data.childCount)
|
||||
ApiRequestPager(
|
||||
api,
|
||||
request,
|
||||
GetItemsRequestHandler,
|
||||
viewModelScope,
|
||||
itemCount = item.data.childCount,
|
||||
)
|
||||
pager.init()
|
||||
episodes.value = pager
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,13 +15,12 @@ import com.github.damontecres.dolphin.data.model.BaseItem
|
|||
import com.github.damontecres.dolphin.data.model.Video
|
||||
import com.github.damontecres.dolphin.preferences.UserPreferences
|
||||
import com.github.damontecres.dolphin.ui.cards.ItemRow
|
||||
import com.github.damontecres.dolphin.ui.indexOfFirstOrNull
|
||||
import com.github.damontecres.dolphin.ui.nav.Destination
|
||||
import com.github.damontecres.dolphin.ui.nav.NavigationManager
|
||||
import com.github.damontecres.dolphin.util.ApiRequestPager
|
||||
import com.github.damontecres.dolphin.util.ExceptionHandler
|
||||
import com.github.damontecres.dolphin.util.GetEpisodesRequestHandler
|
||||
import com.github.damontecres.dolphin.util.ItemPager
|
||||
import com.github.damontecres.dolphin.util.GetItemsRequestHandler
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import kotlinx.coroutines.Deferred
|
||||
import kotlinx.coroutines.Job
|
||||
|
|
@ -71,7 +70,13 @@ class SeriesViewModel
|
|||
),
|
||||
)
|
||||
val pager =
|
||||
ItemPager(api, request, viewModelScope, itemCount = item.data.childCount)
|
||||
ApiRequestPager(
|
||||
api,
|
||||
request,
|
||||
GetItemsRequestHandler,
|
||||
viewModelScope,
|
||||
itemCount = item.data.childCount,
|
||||
)
|
||||
pager.init()
|
||||
seasons.value = pager
|
||||
Timber.v("Loaded ${pager.size} seasons for series ${item.id}")
|
||||
|
|
@ -94,10 +99,7 @@ class SeriesViewModel
|
|||
viewModelScope.launch(ExceptionHandler()) {
|
||||
init(itemId, potential).join()
|
||||
season?.let { seasonNum ->
|
||||
val targetSeasonPosition =
|
||||
(seasons.value!! as ItemPager)
|
||||
.toBlockingList()
|
||||
.indexOfFirstOrNull { it.indexNumber == seasonNum }
|
||||
// TODO map season number to index in list
|
||||
loadEpisodes(seasonNum)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue