From 4bf8cffd48fb8a4e09570faf95adb94481ba8240 Mon Sep 17 00:00:00 2001 From: Hafiz Date: Thu, 18 May 2023 20:47:43 -0400 Subject: [PATCH] Language String extension --- .../habitica/ui/views/social/PartySeekingListItem.kt | 5 ++--- .../common/habitica/extensions/String-Extensions.kt | 9 +++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/PartySeekingListItem.kt b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/PartySeekingListItem.kt index 707ec10b7..5952a8439 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/PartySeekingListItem.kt +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/views/social/PartySeekingListItem.kt @@ -40,6 +40,7 @@ import com.habitrpg.android.habitica.ui.views.ClassText import com.habitrpg.android.habitica.ui.views.ComposableAvatarView import com.habitrpg.android.habitica.ui.views.ComposableUsernameLabel import com.habitrpg.android.habitica.ui.views.LoadingButtonState +import com.habitrpg.common.habitica.extensions.toLocale import java.util.Locale import kotlin.random.Random @@ -125,9 +126,7 @@ fun PartySeekingListItem( color = HabiticaTheme.colors.textPrimary ) Text( - Locale( - user.preferences?.language ?: "en" - ).getDisplayName(Locale.getDefault()), + "Language: ${user.preferences?.language?.toLocale()?.getDisplayLanguage(Locale.getDefault())}", fontWeight = FontWeight.Medium, fontSize = 14.sp, color = HabiticaTheme.colors.textPrimary diff --git a/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt b/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt index c970caa68..61aa736e5 100644 --- a/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt +++ b/common/src/main/java/com/habitrpg/common/habitica/extensions/String-Extensions.kt @@ -43,3 +43,12 @@ fun String.localizedCapitalizeWithSpaces(): String { } fun CharSequence?.isValidEmail() = !isNullOrEmpty() && Patterns.EMAIL_ADDRESS.matcher(this).matches() + +fun String.toLocale(): Locale { + val parts = this.split("_") + return when(parts.size) { + 1 -> Locale(parts[0]) + 2 -> Locale(parts[0], parts[1]) + else -> Locale("en") + } +}