Show Rotten Tomatoes before IMDb like the PWA
All checks were successful
review/code-claude Claude code review: pass, no blocking findings

This commit is contained in:
justinzeus 2026-10-29 20:15:08 +01:00
parent 38db9e5127
commit c54acc9c1d
5 changed files with 18 additions and 6 deletions

View file

@ -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,
)
/**

View file

@ -219,5 +219,6 @@ fun QuickDetailsData.withSourceRatings(ratings: SourceRatings?): QuickDetailsDat
ratings.criticEntries.takeIf { it.isNotEmpty() }?.let {
buildAnnotatedString { appendRatings(it) }
},
criticRatingFirst = true,
)
}

View file

@ -243,8 +243,8 @@ fun listToDotString(
if (index != strings.lastIndex) dot()
}
ratings?.let {
appendRatings(it.communityEntries)
appendRatings(it.criticEntries)
appendRatings(it.communityEntries)
}
}

View file

@ -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) {

View file

@ -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