mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-07-08 23:51:21 +02:00
Wire up search page to discover items
This commit is contained in:
parent
d814d533ab
commit
ddda10f3a1
2 changed files with 28 additions and 8 deletions
|
|
@ -10,23 +10,26 @@ import com.github.damontecres.wholphin.services.SeerrSearchResult
|
|||
import kotlinx.serialization.SerialName
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.UseSerializers
|
||||
import org.jellyfin.sdk.model.api.BaseItemKind
|
||||
import org.jellyfin.sdk.model.serializer.UUIDSerializer
|
||||
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
|
||||
import java.util.UUID
|
||||
|
||||
@Serializable
|
||||
enum class SeerrItemType {
|
||||
enum class SeerrItemType(
|
||||
val baseItemKind: BaseItemKind?,
|
||||
) {
|
||||
@SerialName("movie")
|
||||
MOVIE,
|
||||
MOVIE(BaseItemKind.MOVIE),
|
||||
|
||||
@SerialName("tv")
|
||||
TV,
|
||||
TV(BaseItemKind.SERIES),
|
||||
|
||||
@SerialName("person")
|
||||
PERSON,
|
||||
PERSON(BaseItemKind.PERSON),
|
||||
|
||||
@SerialName("unknown")
|
||||
UNKNOWN,
|
||||
UNKNOWN(null),
|
||||
;
|
||||
|
||||
companion object {
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ import com.github.damontecres.wholphin.ui.data.RowColumn
|
|||
import com.github.damontecres.wholphin.ui.ifElse
|
||||
import com.github.damontecres.wholphin.ui.isNotNullOrBlank
|
||||
import com.github.damontecres.wholphin.ui.launchIO
|
||||
import com.github.damontecres.wholphin.ui.nav.Destination
|
||||
import com.github.damontecres.wholphin.ui.rememberPosition
|
||||
import com.github.damontecres.wholphin.ui.setValueOnMain
|
||||
import com.github.damontecres.wholphin.ui.tryRequestFocus
|
||||
|
|
@ -324,8 +325,20 @@ fun SearchPage(
|
|||
rowIndex = SEERR_ROW,
|
||||
position = position,
|
||||
focusRequester = focusRequester,
|
||||
onClickItem = { index, item ->
|
||||
// TODO seerr
|
||||
onClickItem = { _, _ ->
|
||||
// no-op
|
||||
},
|
||||
onClickDiscover = { _, item ->
|
||||
val dest =
|
||||
if (item.jellyfinItemId != null && item.type.baseItemKind != null) {
|
||||
Destination.MediaItem(
|
||||
itemId = item.jellyfinItemId,
|
||||
type = item.type.baseItemKind,
|
||||
)
|
||||
} else {
|
||||
Destination.DiscoveredItem(item)
|
||||
}
|
||||
viewModel.navigationManager.navigateTo(dest)
|
||||
},
|
||||
onClickPosition = { position = it },
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
|
|
@ -342,6 +355,7 @@ fun LazyListScope.searchResultRow(
|
|||
onClickItem: (Int, BaseItem) -> Unit,
|
||||
onClickPosition: (RowColumn) -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
onClickDiscover: ((Int, DiscoverItem) -> Unit)? = null,
|
||||
cardContent: @Composable (
|
||||
index: Int,
|
||||
item: BaseItem?,
|
||||
|
|
@ -419,7 +433,10 @@ fun LazyListScope.searchResultRow(
|
|||
ItemRow(
|
||||
title = title,
|
||||
items = r.items,
|
||||
onClickItem = { index, item -> },
|
||||
onClickItem = { index, item ->
|
||||
onClickPosition.invoke(RowColumn(rowIndex, index))
|
||||
onClickDiscover?.invoke(index, item)
|
||||
},
|
||||
onLongClickItem = { _, _ -> },
|
||||
modifier = modifier,
|
||||
cardContent = { index: Int, item: DiscoverItem?, mod: Modifier, onClick: () -> Unit, onLongClick: () -> Unit ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue