From 6bbe9e7e3127406b270ce32f12f7f3e53ab3bc9b Mon Sep 17 00:00:00 2001 From: nourelhodaahmed Date: Fri, 22 Aug 2025 14:55:26 +0300 Subject: [PATCH] refactor: translate season number to arabic --- .../moscow/cineverse/mapper/CommonMapper.kt | 18 ++++++++++++++++++ .../series_seasons/SeasonCard.kt | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/presentation/src/main/java/com/moscow/cineverse/mapper/CommonMapper.kt b/presentation/src/main/java/com/moscow/cineverse/mapper/CommonMapper.kt index b37385f7..bb962cc0 100644 --- a/presentation/src/main/java/com/moscow/cineverse/mapper/CommonMapper.kt +++ b/presentation/src/main/java/com/moscow/cineverse/mapper/CommonMapper.kt @@ -68,6 +68,7 @@ fun Int.formatInt(context: Context): String { (NumberFormat.getNumberInstance(arabicLocale) as DecimalFormat).apply { minimumFractionDigits = 0 maximumFractionDigits = 0 + isGroupingUsed = false decimalFormatSymbols = DecimalFormatSymbols(arabicLocale).apply { zeroDigit = DecimalStyle.of(arabicLocale).zeroDigit } @@ -76,6 +77,7 @@ fun Int.formatInt(context: Context): String { NumberFormat.getNumberInstance(appLocale).apply { minimumFractionDigits = 0 maximumFractionDigits = 0 + isGroupingUsed = false } } formatter.format(this) @@ -84,6 +86,22 @@ fun Int.formatInt(context: Context): String { } } +fun String.formatSeasonNumber(context: Context): String { + return try { + val regex = """\d+""".toRegex() + val match = regex.find(this) + if (match != null) { + val number = match.value.toInt() + val formattedNumber = number.formatInt(context) + this.replace(match.value, formattedNumber) + } else { + this + } + } catch (e: Exception) { + this + } +} + fun LocalDate.formatDate(context: Context): String { return try { val appLocale = context.resources.configuration.locales[0] diff --git a/presentation/src/main/java/com/moscow/cineverse/screen/details/series_details/series_seasons/SeasonCard.kt b/presentation/src/main/java/com/moscow/cineverse/screen/details/series_details/series_seasons/SeasonCard.kt index 52295aed..9352de7d 100644 --- a/presentation/src/main/java/com/moscow/cineverse/screen/details/series_details/series_seasons/SeasonCard.kt +++ b/presentation/src/main/java/com/moscow/cineverse/screen/details/series_details/series_seasons/SeasonCard.kt @@ -35,6 +35,7 @@ import com.moscow.cineverse.designSystem.theme.Theme import com.moscow.cineverse.image_viewer.component.SafeImageViewer import com.moscow.cineverse.mapper.formatInt import com.moscow.cineverse.mapper.formatRating +import com.moscow.cineverse.mapper.formatSeasonNumber import com.moscow.cinverse.presentation.R import kotlinx.datetime.LocalDate @@ -96,7 +97,7 @@ fun SeasonCard( verticalArrangement = Arrangement.spacedBy(4.dp) ) { MovieText( - text = seasonNumber, + text = seasonNumber.formatSeasonNumber(LocalContext.current), style = Theme.textStyle.body.medium.medium, color = Theme.colors.shade.primary ) @@ -122,7 +123,6 @@ fun SeasonCard( verticalAlignment = Alignment.CenterVertically ) { if (rate != 0f) { - val movie = null SeasonInfo( icon = R.drawable.due_tone_star, iconTint = Theme.colors.additional.primary.yellow,