fix settings crash

feature/top10
Razmig Sarkissian 7 years ago
parent 46adf8c068
commit ae009f468f
  1. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 21
      app/src/main/java/net/pokeranalytics/android/model/utils/Seed.kt
  3. 20
      app/src/main/java/net/pokeranalytics/android/util/CurrencyUtils.kt
  4. 15
      app/src/main/java/net/pokeranalytics/android/util/Preferences.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()}"
}

@ -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()

@ -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"))
}
}
}
}
}

@ -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!!
}

Loading…
Cancel
Save