From c54acc9c1d5f37533760fd9da43a7326b43a9f7e Mon Sep 17 00:00:00 2001 From: justinzeus Date: Thu, 29 Oct 2026 20:15:08 +0100 Subject: [PATCH] Show Rotten Tomatoes before IMDb like the PWA --- .../damontecres/wholphin/data/model/BaseItem.kt | 4 ++++ .../wholphin/data/model/SourceRatings.kt | 1 + .../github/damontecres/wholphin/ui/Formatting.kt | 2 +- .../wholphin/ui/components/QuickDetails.kt | 13 ++++++++----- .../wholphin/data/model/SourceRatingsTest.kt | 4 ++++ 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt b/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt index 94dc23c2..de3a8f5e 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/model/BaseItem.kt @@ -371,6 +371,10 @@ data class QuickDetailsData( val officialRating: AnnotatedString? = null, val criticRating: AnnotatedString? = null, val communityRating: AnnotatedString? = null, + /** + * Show [criticRating] (Rotten Tomatoes) before [communityRating] (IMDb/TMDB) like the PWA, instead of the Jellyfin order + */ + val criticRatingFirst: Boolean = false, ) /** diff --git a/app/src/main/java/com/github/damontecres/wholphin/data/model/SourceRatings.kt b/app/src/main/java/com/github/damontecres/wholphin/data/model/SourceRatings.kt index 451ff57d..1085a8a6 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/data/model/SourceRatings.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/data/model/SourceRatings.kt @@ -219,5 +219,6 @@ fun QuickDetailsData.withSourceRatings(ratings: SourceRatings?): QuickDetailsDat ratings.criticEntries.takeIf { it.isNotEmpty() }?.let { buildAnnotatedString { appendRatings(it) } }, + criticRatingFirst = true, ) } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt index 6096e967..30521965 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/Formatting.kt @@ -243,8 +243,8 @@ fun listToDotString( if (index != strings.lastIndex) dot() } ratings?.let { - appendRatings(it.communityEntries) appendRatings(it.criticEntries) + appendRatings(it.communityEntries) } } diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/components/QuickDetails.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/components/QuickDetails.kt index 267677e3..d4228be0 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/components/QuickDetails.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/components/QuickDetails.kt @@ -59,11 +59,14 @@ fun QuickDetails( if (DisplayToggle.OFFICIAL_RATING in enabled) { QuickDetailsText(details.officialRating, Modifier, textStyle, inlineContentMap) } - if (DisplayToggle.COMMUNITY_RATING in enabled) { - QuickDetailsText(details.communityRating, Modifier, textStyle, inlineContentMap) - } - if (DisplayToggle.CRITIC_RATING in enabled) { - QuickDetailsText(details.criticRating, Modifier, textStyle, inlineContentMap) + val community = DisplayToggle.COMMUNITY_RATING in enabled + val critic = DisplayToggle.CRITIC_RATING in enabled + if (details.criticRatingFirst) { + if (critic) QuickDetailsText(details.criticRating, Modifier, textStyle, inlineContentMap) + if (community) QuickDetailsText(details.communityRating, Modifier, textStyle, inlineContentMap) + } else { + if (community) QuickDetailsText(details.communityRating, Modifier, textStyle, inlineContentMap) + if (critic) QuickDetailsText(details.criticRating, Modifier, textStyle, inlineContentMap) } } if (timeRemaining != null) { diff --git a/app/src/test/java/com/github/damontecres/wholphin/data/model/SourceRatingsTest.kt b/app/src/test/java/com/github/damontecres/wholphin/data/model/SourceRatingsTest.kt index e91bfd29..41fee583 100644 --- a/app/src/test/java/com/github/damontecres/wholphin/data/model/SourceRatingsTest.kt +++ b/app/src/test/java/com/github/damontecres/wholphin/data/model/SourceRatingsTest.kt @@ -2,6 +2,7 @@ package com.github.damontecres.wholphin.data.model import androidx.compose.ui.text.AnnotatedString import org.junit.Assert.assertEquals +import org.junit.Assert.assertFalse import org.junit.Assert.assertNull import org.junit.Assert.assertSame import org.junit.Assert.assertTrue @@ -131,6 +132,9 @@ class SourceRatingsTest { assertTrue(details.communityRating!!.text.endsWith("8.8")) assertTrue(details.criticRating!!.text.endsWith("96%")) assertEquals(jellyfinDetails.basic, details.basic) + // PWA order: Rotten Tomatoes before IMDb + assertTrue(details.criticRatingFirst) + assertFalse(jellyfinDetails.criticRatingFirst) } @Test