From aeb5e04321c407d25925f461b0b10453a837836e Mon Sep 17 00:00:00 2001 From: tapframe <85391825+tapframe@users.noreply.github.com> Date: Mon, 6 Jul 2026 02:29:12 +0530 Subject: [PATCH] fix: show donation progress percent --- .../composeResources/values-bg/strings.xml | 2 +- .../composeResources/values-cs/strings.xml | 2 +- .../composeResources/values-el/strings.xml | 4 +- .../composeResources/values-es/strings.xml | 2 +- .../composeResources/values-fr/strings.xml | 2 +- .../composeResources/values-it/strings.xml | 2 +- .../composeResources/values-ja/strings.xml | 2 +- .../composeResources/values-sk/strings.xml | 2 +- .../composeResources/values/strings.xml | 2 +- .../settings/SupportersContributorsPage.kt | 39 +++++++++++++++---- 10 files changed, 41 insertions(+), 18 deletions(-) diff --git a/composeApp/src/commonMain/composeResources/values-bg/strings.xml b/composeApp/src/commonMain/composeResources/values-bg/strings.xml index 42806f065..d02723c2f 100644 --- a/composeApp/src/commonMain/composeResources/values-bg/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-bg/strings.xml @@ -1852,7 +1852,7 @@ Добави Сървър и поддръжка за този месец Покрито. Допълнителната подкрепа вече отива за разработка. - След 100%% допълнителната подкрепа отива за разработка. + След 100% допълнителната подкрепа отива за разработка. Зареждане на напредъка на финансирането... С регистрацията си се съгласявам с Условията diff --git a/composeApp/src/commonMain/composeResources/values-cs/strings.xml b/composeApp/src/commonMain/composeResources/values-cs/strings.xml index a8eef7a6a..405334190 100644 --- a/composeApp/src/commonMain/composeResources/values-cs/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-cs/strings.xml @@ -788,7 +788,7 @@ Podívejte se na lidi, kteří tvoří a podporují Nuvio na Mobilech, TV a Webu. Tento měsíc za servery a údržbu Pokryto. Dodatečná podpora nyní půjde na vývoj. - Po dosažení 100%% půjde další podpora na vývoj. + Po dosažení 100% půjde další podpora na vývoj. Načítání průběhu financování... Supporters API není nakonfigurováno. Přidejte DONATIONS_BASE_URL do local.properties. Přispěvatelé diff --git a/composeApp/src/commonMain/composeResources/values-el/strings.xml b/composeApp/src/commonMain/composeResources/values-el/strings.xml index 222e848c2..4c2fd1766 100644 --- a/composeApp/src/commonMain/composeResources/values-el/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-el/strings.xml @@ -1331,7 +1331,7 @@ Trakt Αξιολόγηση limit reached Trakt request Απέτυχε Covered. Προσθήκηitional support now goes to development. - After 100%%, Προσθήκηitional support goes to development. + After 100%, Προσθήκηitional support goes to development. Αυτό τον μήνα's server & maintenance Φόρτωση funding progress... Terms @@ -1911,4 +1911,4 @@ GitHub releases API Σφάλμα: %1$d No upΗμερομηνία has been published yet. Release has Όχι tag or name - \ No newline at end of file + diff --git a/composeApp/src/commonMain/composeResources/values-es/strings.xml b/composeApp/src/commonMain/composeResources/values-es/strings.xml index c965ad6f7..e591930a4 100644 --- a/composeApp/src/commonMain/composeResources/values-es/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-es/strings.xml @@ -788,7 +788,7 @@ Mira a las personas que construyen y apoyan Nuvio en Mobile, TV y Web. Servidor y mantenimiento de este mes Cubierto. El apoyo adicional ahora se destina al desarrollo. - Después del 100%%, el apoyo adicional se destina al desarrollo. + Después del 100%, el apoyo adicional se destina al desarrollo. Cargando progreso de financiación... La API de patrocinadores no está configurada. Agrega DONATIONS_BASE_URL a local.properties. Colaboradores diff --git a/composeApp/src/commonMain/composeResources/values-fr/strings.xml b/composeApp/src/commonMain/composeResources/values-fr/strings.xml index 772401ab9..237419643 100644 --- a/composeApp/src/commonMain/composeResources/values-fr/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-fr/strings.xml @@ -780,7 +780,7 @@ Découvrez les personnes qui construisent et soutiennent Nuvio sur Mobile, TV et Web. Serveur et maintenance de ce mois-ci Couvert. Le soutien supplémentaire va désormais au développement. - Au-delà de 100 %%, le soutien supplémentaire va au développement. + Au-delà de 100 %, le soutien supplémentaire va au développement. Chargement de la progression du financement… L’API des supporters n’est pas configurée. Ajoutez DONATIONS_BASE_URL dans local.properties. Contributeurs diff --git a/composeApp/src/commonMain/composeResources/values-it/strings.xml b/composeApp/src/commonMain/composeResources/values-it/strings.xml index bbce04579..035580c22 100644 --- a/composeApp/src/commonMain/composeResources/values-it/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-it/strings.xml @@ -1517,6 +1517,6 @@ Avvio e comportamento profili. Costi di manutenzione e server Coperto. Qualsiasi supporto ulteriore andrà allo sviluppo. - Dopo il 100%%, eventuale supporto in più andrà allo sviluppo. + Dopo il 100%, eventuale supporto in più andrà allo sviluppo. Dona a Nuvio diff --git a/composeApp/src/commonMain/composeResources/values-ja/strings.xml b/composeApp/src/commonMain/composeResources/values-ja/strings.xml index e0af8d042..45688cd97 100644 --- a/composeApp/src/commonMain/composeResources/values-ja/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-ja/strings.xml @@ -788,7 +788,7 @@ Mobile・TV・Webを通じてNuvioを構築・支援している人々をご覧ください。 今月のサーバー・メンテナンス費用 達成済み。追加のサポートは開発費に充てられます。 - 100%%を超えた追加サポートは開発費に充てられます。 + 100%を超えた追加サポートは開発費に充てられます。 資金調達状況を読み込み中... サポーターAPIが設定されていません。local.propertiesにDONATIONS_BASE_URLを追加してください。 コントリビューター diff --git a/composeApp/src/commonMain/composeResources/values-sk/strings.xml b/composeApp/src/commonMain/composeResources/values-sk/strings.xml index a72a6e3ef..f554f5310 100644 --- a/composeApp/src/commonMain/composeResources/values-sk/strings.xml +++ b/composeApp/src/commonMain/composeResources/values-sk/strings.xml @@ -778,7 +778,7 @@ Pozrite sa na ľudí, ktorí budujú a podporujú Nuvio na Mobile, TV a Webe. Server a údržba tohto mesiaca Pokryté. Ďalšia podpora ide na vývoj. - Po 100 %% ide ďalšia podpora na vývoj. + Po 100 % ide ďalšia podpora na vývoj. Načítavanie postupu financovania... API podporovateľov nie je nakonfigurované. Pridajte DONATIONS_BASE_URL do local.properties. Prispievatelia diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/composeApp/src/commonMain/composeResources/values/strings.xml index de0260e8e..a05e2bf91 100644 --- a/composeApp/src/commonMain/composeResources/values/strings.xml +++ b/composeApp/src/commonMain/composeResources/values/strings.xml @@ -814,7 +814,7 @@ See the people building and supporting Nuvio across Mobile, TV, and Web. This month's server & maintenance Covered. Additional support now goes to development. - After 100%%, additional support goes to development. + After 100%, additional support goes to development. Loading funding progress... Supporters API is not configured. Add DONATIONS_BASE_URL to local.properties. Contributors diff --git a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SupportersContributorsPage.kt b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SupportersContributorsPage.kt index 2299e120a..6ff9426a0 100644 --- a/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SupportersContributorsPage.kt +++ b/composeApp/src/commonMain/kotlin/com/nuvio/app/features/settings/SupportersContributorsPage.kt @@ -59,6 +59,7 @@ import kotlinx.coroutines.launch import kotlinx.serialization.Serializable import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json +import kotlin.math.roundToInt import nuvio.composeapp.generated.resources.* import org.jetbrains.compose.resources.getString import org.jetbrains.compose.resources.stringResource @@ -208,8 +209,7 @@ private object SupportersContributorsRepository { val progress = donationsResponse.monthlyGoal ?.progressPercent - ?.toInt() - ?.coerceIn(0, 100) + ?.toDonationProgressPercent() ?.let { percent -> DonationProgress(progressPercent = percent) } SupportersResult( @@ -240,6 +240,15 @@ private object SupportersContributorsRepository { val day = parts[2].toLongOrNull() ?: return Long.MIN_VALUE return year * 10_000L + month * 100L + day } + + private fun Double.toDonationProgressPercent(): Int? { + if (isNaN()) return null + return when { + this >= 100.0 -> 100 + this <= 0.0 -> 0 + else -> roundToInt().coerceIn(0, 99) + } + } } @Composable @@ -630,13 +639,27 @@ private fun DonationProgressSection( modifier = Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp), ) { - Text( - text = stringResource(Res.string.community_donation_progress_title), - style = MaterialTheme.typography.titleSmall, - color = MaterialTheme.colorScheme.onSurface, - fontWeight = FontWeight.SemiBold, + Row( modifier = Modifier.fillMaxWidth(), - ) + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(12.dp), + ) { + Text( + text = stringResource(Res.string.community_donation_progress_title), + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.onSurface, + fontWeight = FontWeight.SemiBold, + modifier = Modifier.weight(1f), + ) + if (progress != null && errorMessage == null) { + Text( + text = "$percent%", + style = MaterialTheme.typography.titleSmall, + color = MaterialTheme.colorScheme.primary, + fontWeight = FontWeight.SemiBold, + ) + } + } if (isLoading && progress == null) { LinearProgressIndicator(