fix issue with currency

feature/top10
Razmig Sarkissian 7 years ago
parent 778825f2d0
commit c20be8cff9
  1. 8
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt
  2. 8
      app/src/main/java/net/pokeranalytics/android/util/Preferences.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/util/extensions/NumbersExtension.kt

@ -46,6 +46,14 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
private val availableCurrencies = this.systemCurrencies.filter { private val availableCurrencies = this.systemCurrencies.filter {
!mostUsedCurrencyCodes.contains(it.currencyCode) !mostUsedCurrencyCodes.contains(it.currencyCode)
}.filter {
Locale.getAvailableLocales().filter {locale ->
try {
Currency.getInstance(locale).currencyCode == it.currencyCode
} catch (e: Exception) {
false
}
}.isNotEmpty()
}.sortedBy { }.sortedBy {
it.displayName it.displayName
}.map { }.map {

@ -51,13 +51,13 @@ class Preferences {
fun getCurrencyLocale(context : Context) : Locale? { fun getCurrencyLocale(context : Context) : Locale? {
getCurrencyCode(context)?.let { currencyCode -> getCurrencyCode(context)?.let { currencyCode ->
Locale.getAvailableLocales().filter{ Locale.getAvailableLocales().filter {
try { try {
Currency.getInstance(it).currencyCode == currencyCode Currency.getInstance(it).currencyCode == currencyCode
} catch (e: Exception) { } catch (e: Exception) {
false false
} }
}.first().let { }.firstOrNull()?.let {
return it return it
} }
} }
@ -90,11 +90,11 @@ class UserDefaults private constructor(context: Context) {
companion object : SingletonHolder<UserDefaults, Context>(::UserDefaults) { companion object : SingletonHolder<UserDefaults, Context>(::UserDefaults) {
lateinit var currency : Currency lateinit var currency : Currency
lateinit var currencyLocale : Locale var currencyLocale : Locale? = null
fun setCurrencyValues(context: Context) { fun setCurrencyValues(context: Context) {
currency = Preferences.getDefaultCurrency(context) ?: getLocaleCurrency() currency = Preferences.getDefaultCurrency(context) ?: getLocaleCurrency()
currencyLocale = Preferences.getCurrencyLocale(context) ?: Locale.getDefault() currencyLocale = Preferences.getCurrencyLocale(context)
} }
/** /**

@ -24,7 +24,7 @@ fun Double.formatted(): String {
fun Double.toCurrency(currency: Currency? = null): String { fun Double.toCurrency(currency: Currency? = null): String {
val currencyFormatter = NumberFormat.getCurrencyInstance(UserDefaults.currencyLocale) val currencyFormatter = UserDefaults.currencyLocale?.let { NumberFormat.getCurrencyInstance(it) } ?: run { NumberFormat.getCurrencyInstance() }
currency?.let { currency?.let {
currencyFormatter.currency = currency currencyFormatter.currency = currency
} }

Loading…
Cancel
Save