update currency management

feature/top10
Razmig Sarkissian 7 years ago
parent 1afbc7acbb
commit b505cf3ee7
  1. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/CurrenciesFragment.kt
  2. 3
      app/src/main/java/net/pokeranalytics/android/util/FormatUtils.kt
  3. 50
      app/src/main/java/net/pokeranalytics/android/util/Preferences.kt

@ -19,8 +19,8 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable
import net.pokeranalytics.android.util.Preferences
import java.util.* import java.util.*
import java.util.prefs.Preferences
class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
@ -85,6 +85,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
// RowRepresentableDelegate // RowRepresentableDelegate
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
Preferences.setCurrencyCode((row as CurrencyRow).currency.currencyCode, this.context!!)
} }
private fun initData() { private fun initData() {
@ -98,7 +99,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
val activity = activity as PokerAnalyticsActivity val activity = activity as PokerAnalyticsActivity
// Avoid a bug during setting the title // Avoid a bug during setting the title
toolbar.title = activity.baseContext.getString( R.string.currency) toolbar.title = this.getString( R.string.currency)
activity.setSupportActionBar(toolbar) activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true) activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)

@ -2,13 +2,14 @@ package net.pokeranalytics.android.util
import android.content.Context import android.content.Context
import java.text.NumberFormat import java.text.NumberFormat
import java.util.*
class FormatUtils { class FormatUtils {
companion object { companion object {
fun getCurrencyFormatter(context: Context) : NumberFormat { fun getCurrencyFormatter(context: Context) : NumberFormat {
var formatter = NumberFormat.getCurrencyInstance(Preferences.getCurrencyLocale(context)) val formatter = NumberFormat.getCurrencyInstance(Preferences.getCurrencyLocale(context))
formatter.minimumFractionDigits = 0 formatter.minimumFractionDigits = 0
formatter.maximumFractionDigits = 2 formatter.maximumFractionDigits = 2
return formatter return formatter

@ -7,47 +7,55 @@ import java.util.*
class Preferences { class Preferences {
enum class Keys(var identifier: String) { enum class Keys(var identifier: String) {
CURRENCY_LANGUAGE("CurrencyLanguage") CURRENCY_CODE("CurrencyCode")
} }
companion object { companion object {
var currencyLocale : Locale? = null
fun setString(key: Keys, value: String, context: Context) { fun setString(key: Keys, value: String, context: Context) {
var preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
var editor = preferences.edit() val editor = preferences.edit()
editor.putString(key.identifier, value) editor.putString(key.identifier, value)
editor.commit() editor.commit()
} }
fun getString(key: Keys, context: Context) : String? { fun getString(key: Keys, context: Context) : String? {
var preferences = PreferenceManager.getDefaultSharedPreferences(context) val preferences = PreferenceManager.getDefaultSharedPreferences(context)
return preferences.getString(key.identifier, null) return preferences.getString(key.identifier, null)
} }
fun setCurrencyLanguage(language: String, context: Context) { fun setCurrencyCode(currencyCode: String, context: Context) {
Preferences.setString(Keys.CURRENCY_LANGUAGE, language, context) Preferences.setString(Keys.CURRENCY_CODE, currencyCode, context)
currencyLocale = null
} }
fun getCurrencyLocale(context : Context) : Locale { private fun getCurrencyCode(context: Context) : String? {
return Preferences.getString(Keys.CURRENCY_CODE, context)
}
/* fun getCurrencyLocale(context : Context) : Locale {
java.util.Currency usd = java.util.Currency.getInstance("USD"); currencyLocale?. let {
java.text.NumberFormat format = java.text.NumberFormat.getCurrencyInstance( return it
java.util.Locale.JAPAN); }
format.setCurrency(usd);
System.out.println(format.format(23.23));
format.setMaximumFractionDigits(usd.getDefaultFractionDigits());
System.out.println(format.format(23.23));
*/ Preferences.getCurrencyCode(context)?.let { currencyCode ->
val currencyLanguage = Preferences.getString(Keys.CURRENCY_LANGUAGE, context) Locale.getAvailableLocales().filter{
if (currencyLanguage != null) { try {
return Locale(currencyLanguage) Currency.getInstance(it).currencyCode == currencyCode
} catch (e: Exception) {
false
}
}.first().let {
currencyLocale = it
return it
}
} }
return Locale.getDefault() currencyLocale = Locale.getDefault()
return currencyLocale!!
} }
} }
} }
Loading…
Cancel
Save