From f4b1e9ba73286e58b207a005035a51ad880b75d7 Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Thu, 23 Apr 2026 23:19:42 +0530 Subject: [PATCH] fix: threshold calculation fix --- .../com/nuvio/app/features/trakt/TraktProgressRepository.kt | 6 +++--- .../nuvio/app/features/watchprogress/WatchProgressModels.kt | 2 +- .../app/features/watchprogress/WatchProgressRepository.kt | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/trakt/TraktProgressRepository.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/trakt/TraktProgressRepository.kt index c7c49c49..b75022a6 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/trakt/TraktProgressRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/trakt/TraktProgressRepository.kt @@ -4,7 +4,6 @@ import co.touchlab.kermit.Logger import com.nuvio.app.features.addons.httpGetTextWithHeaders import com.nuvio.app.features.addons.httpRequestRaw import com.nuvio.app.features.details.MetaDetailsRepository -import com.nuvio.app.features.watchprogress.WatchProgressCompletionPercentThreshold import com.nuvio.app.features.watchprogress.WatchProgressEntry import com.nuvio.app.features.watchprogress.buildPlaybackVideoId import kotlinx.coroutines.CancellationException @@ -28,6 +27,7 @@ import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json private const val BASE_URL = "https://api.trakt.tv" +private const val TRAKT_COMPLETION_PERCENT_THRESHOLD = 80f private const val HISTORY_LIMIT = 250 private const val METADATA_FETCH_TIMEOUT_MS = 3_500L private const val METADATA_FETCH_CONCURRENCY = 5 @@ -468,7 +468,7 @@ object TraktProgressRepository { lastPositionMs = 0L, durationMs = 0L, lastUpdatedEpochMs = rankedTimestamp(item.pausedAt, fallbackIndex), - isCompleted = progressPercent >= WatchProgressCompletionPercentThreshold, + isCompleted = progressPercent >= TRAKT_COMPLETION_PERCENT_THRESHOLD, progressPercent = progressPercent, ).normalizedCompletion() } @@ -502,7 +502,7 @@ object TraktProgressRepository { lastPositionMs = 0L, durationMs = 0L, lastUpdatedEpochMs = rankedTimestamp(item.pausedAt, fallbackIndex), - isCompleted = progressPercent >= WatchProgressCompletionPercentThreshold, + isCompleted = progressPercent >= TRAKT_COMPLETION_PERCENT_THRESHOLD, progressPercent = progressPercent, ).normalizedCompletion() } diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressModels.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressModels.kt index 855596c5..5a678bdc 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressModels.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressModels.kt @@ -44,7 +44,7 @@ data class WatchProgressEntry( val isEffectivelyCompleted: Boolean get() = isCompleted || (normalizedProgressPercent?.let { it >= WatchProgressCompletionPercentThreshold } == true) || - (durationMs > 0L && lastPositionMs >= durationMs) + (durationMs > 0L && isWatchProgressComplete(lastPositionMs, durationMs, false)) val progressFraction: Float get() { diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressRepository.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressRepository.kt index 84fb18e0..55adcebe 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressRepository.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/watchprogress/WatchProgressRepository.kt @@ -138,7 +138,7 @@ object WatchProgressRepository { lastStreamSubtitle = cached?.lastStreamSubtitle, pauseDescription = cached?.pauseDescription, lastSourceUrl = cached?.lastSourceUrl, - isCompleted = entry.duration > 0 && entry.position >= entry.duration, + isCompleted = isWatchProgressComplete(entry.position, entry.duration, false), ) }