From ae009f468f755736090a44f47c503f078afdebad Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Fri, 12 Apr 2019 16:52:52 +0200 Subject: [PATCH] fix settings crash --- .../android/model/realm/Session.kt | 2 +- .../android/model/utils/Seed.kt | 21 ++----------------- .../android/util/CurrencyUtils.kt | 20 +++++++++++++++++- .../android/util/Preferences.kt | 15 ++++++++++++- 4 files changed, 36 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index 8bf81de2..486aca1b 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -486,7 +486,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat * Return the formatted blinds */ fun getBlinds(): String { - val currencyCode = bankroll?.currency?.code ?: Currency.getInstance(Locale.getDefault()).currencyCode + val currencyCode = bankroll?.currency?.code ?: CurrencyUtils.getLocaleCurrency().currencyCode val currencySymbol = Currency.getInstance(currencyCode).symbol return if (cgSmallBlind == null) NULL_TEXT else "$currencySymbol ${cgSmallBlind?.formatted()}/${cgBigBlind?.round()}" } diff --git a/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt index 102ebb18..ecf5fbc7 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt @@ -6,6 +6,8 @@ import io.realm.kotlin.where import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.* import net.pokeranalytics.android.model.realm.Currency +import net.pokeranalytics.android.util.CurrencyUtils +import net.pokeranalytics.android.util.CurrencyUtils.Companion.getLocaleCurrency import net.pokeranalytics.android.util.Preferences import java.util.* @@ -26,25 +28,6 @@ class Seed(var context:Context) : Realm.Transaction { } } - /** - * Return the locale currency, or en_US if there - */ - private fun getLocaleCurrency() : java.util.Currency { - return try { - java.util.Currency.getInstance(Locale.getDefault()) - } catch (ex: Exception) { - when (Locale.getDefault().language) { - "en" -> java.util.Currency.getInstance(Locale("en", "US")) - "fr" -> java.util.Currency.getInstance(Locale("fr", "FR")) - "es" -> java.util.Currency.getInstance(Locale("es", "ES")) - "de" -> java.util.Currency.getInstance(Locale("de", "DE")) - "ja" -> java.util.Currency.getInstance(Locale("ja", "JP")) - "zh" -> java.util.Currency.getInstance(Locale("zh", "CN")) - else -> java.util.Currency.getInstance(Locale("en", "US")) - } - } - } - private fun createDefaultCurrencyAndBankroll(realm: Realm) { // Currency val localeCurrency = getLocaleCurrency() diff --git a/app/src/main/java/net/pokeranalytics/android/util/CurrencyUtils.kt b/app/src/main/java/net/pokeranalytics/android/util/CurrencyUtils.kt index 861ada82..c3fc3dd2 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/CurrencyUtils.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/CurrencyUtils.kt @@ -13,7 +13,7 @@ class CurrencyUtils { * return the currency associated with this bankroll */ fun getCurrency(bankroll: Bankroll? = null) : Currency { - val currencyCode = bankroll?.currency?.code ?: Currency.getInstance(Locale.getDefault()).currencyCode + val currencyCode = bankroll?.currency?.code ?: CurrencyUtils.getLocaleCurrency().currencyCode return Currency.getInstance(currencyCode) } @@ -40,6 +40,24 @@ class CurrencyUtils { return currencyFormatter } + /** + * Return the locale currency, or en_US if there + */ + fun getLocaleCurrency() : java.util.Currency { + return try { + java.util.Currency.getInstance(Locale.getDefault()) + } catch (ex: Exception) { + when (Locale.getDefault().language) { + "en" -> java.util.Currency.getInstance(Locale("en", "US")) + "fr" -> java.util.Currency.getInstance(Locale("fr", "FR")) + "es" -> java.util.Currency.getInstance(Locale("es", "ES")) + "de" -> java.util.Currency.getInstance(Locale("de", "DE")) + "ja" -> java.util.Currency.getInstance(Locale("ja", "JP")) + "zh" -> java.util.Currency.getInstance(Locale("zh", "CN")) + else -> java.util.Currency.getInstance(Locale("en", "US")) + } + } + } } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt index adfe3790..149c6062 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt @@ -69,7 +69,20 @@ class Preferences { return it } } - currencyLocale = Locale.getDefault() + + currencyLocale = try { + Locale.getDefault() + } catch (ex: Exception) { + when (Locale.getDefault().language) { + "en" -> Locale("en", "US") + "fr" -> Locale("fr", "FR") + "es" -> Locale("es", "ES") + "de" -> Locale("de", "DE") + "ja" -> Locale("ja", "JP") + "zh" -> Locale("zh", "CN") + else -> Locale("en", "US") + } + } return currencyLocale!! }