diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/model/GetItemsFilter.kt b/app/src/main/java/com/github/damontecres/wholphin/data/model/GetItemsFilter.kt index 4a34d462..bd65d17c 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/model/GetItemsFilter.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/model/GetItemsFilter.kt @@ -1,11 +1,11 @@ -@file:UseSerializers(UuidSerializer::class) +@file:UseSerializers(UUIDSerializer::class) package com.github.damontecres.wholphin.data.model -import com.github.damontecres.wholphin.util.UuidSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import org.jellyfin.sdk.model.api.request.GetItemsRequest +import org.jellyfin.sdk.model.serializer.UUIDSerializer import java.util.UUID @Serializable diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/model/ItemPlayback.kt b/app/src/main/java/com/github/damontecres/wholphin/data/model/ItemPlayback.kt index b54718c8..5c2ba906 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/model/ItemPlayback.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/model/ItemPlayback.kt @@ -1,4 +1,4 @@ -@file:UseSerializers(UuidSerializer::class) +@file:UseSerializers(UUIDSerializer::class) package com.github.damontecres.wholphin.data.model @@ -10,7 +10,6 @@ import com.github.damontecres.wholphin.data.JellyfinUser import com.github.damontecres.wholphin.preferences.UserPreferences import com.github.damontecres.wholphin.ui.isNotNullOrBlank import com.github.damontecres.wholphin.ui.letNotEmpty -import com.github.damontecres.wholphin.util.UuidSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import org.jellyfin.sdk.model.api.BaseItemDto @@ -18,6 +17,7 @@ import org.jellyfin.sdk.model.api.MediaSourceInfo import org.jellyfin.sdk.model.api.MediaStream import org.jellyfin.sdk.model.api.MediaStreamType import org.jellyfin.sdk.model.api.SubtitlePlaybackMode +import org.jellyfin.sdk.model.serializer.UUIDSerializer import org.jellyfin.sdk.model.serializer.toUUIDOrNull import java.util.UUID diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/ItemViewModel.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/ItemViewModel.kt index d61edc84..2eeb6eaa 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/ItemViewModel.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/ItemViewModel.kt @@ -82,8 +82,10 @@ abstract class LoadingItemViewModel( } } catch (e: Exception) { Timber.e(e, "Failed to load item $itemId") - item.value = null - loading.value = LoadingState.Error("Error loading item $itemId", e) + withContext(Dispatchers.Main) { + item.value = null + loading.value = LoadingState.Error("Error loading item $itemId", e) + } } } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt index bfd9a198..83ba1211 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/detail/movie/MovieDetails.kt @@ -104,12 +104,14 @@ class MovieViewModel chosenStreams.value = result } } - people.value = - item.data.people - ?.letNotEmpty { people -> - people.map { Person.fromDto(it, api) } - }.orEmpty() - chapters.value = Chapter.fromDto(item.data, api) + withContext(Dispatchers.Main) { + people.value = + item.data.people + ?.letNotEmpty { people -> + people.map { Person.fromDto(it, api) } + }.orEmpty() + chapters.value = Chapter.fromDto(item.data, api) + } } } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/nav/Destination.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/nav/Destination.kt index fcb95024..89f2e203 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/nav/Destination.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/nav/Destination.kt @@ -1,4 +1,4 @@ -@file:UseSerializers(UuidSerializer::class) +@file:UseSerializers(UUIDSerializer::class) package com.github.damontecres.wholphin.ui.nav @@ -8,11 +8,11 @@ import com.github.damontecres.wholphin.data.model.GetItemsFilter import com.github.damontecres.wholphin.data.model.ItemPlayback import com.github.damontecres.wholphin.ui.detail.series.SeasonEpisode import com.github.damontecres.wholphin.ui.preferences.PreferenceScreenOption -import com.github.damontecres.wholphin.util.UuidSerializer import kotlinx.serialization.Serializable import kotlinx.serialization.Transient import kotlinx.serialization.UseSerializers import org.jellyfin.sdk.model.api.BaseItemKind +import org.jellyfin.sdk.model.serializer.UUIDSerializer import java.util.UUID /** diff --git a/app/src/main/java/com/github/damontecres/wholphin/util/UuidSerializer.kt b/app/src/main/java/com/github/damontecres/wholphin/util/UuidSerializer.kt deleted file mode 100644 index c73fd8e1..00000000 --- a/app/src/main/java/com/github/damontecres/wholphin/util/UuidSerializer.kt +++ /dev/null @@ -1,24 +0,0 @@ -package com.github.damontecres.wholphin.util - -import kotlinx.serialization.KSerializer -import kotlinx.serialization.descriptors.PrimitiveKind -import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor -import kotlinx.serialization.descriptors.SerialDescriptor -import kotlinx.serialization.encoding.Decoder -import kotlinx.serialization.encoding.Encoder -import java.util.UUID - -class UuidSerializer : KSerializer { - override val descriptor: SerialDescriptor - get() = PrimitiveSerialDescriptor("UUID", PrimitiveKind.LONG) - - override fun deserialize(decoder: Decoder): UUID = UUID(decoder.decodeLong(), decoder.decodeLong()) - - override fun serialize( - encoder: Encoder, - value: UUID, - ) { - encoder.encodeLong(value.mostSignificantBits) - encoder.encodeLong(value.leastSignificantBits) - } -}