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.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable
import net.pokeranalytics.android.util.Preferences
import java.util.*
import java.util.prefs.Preferences
class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {
@ -85,6 +85,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
// RowRepresentableDelegate
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
Preferences.setCurrencyCode((row as CurrencyRow).currency.currencyCode, this.context!!)
}
private fun initData() {
@ -98,7 +99,7 @@ class CurrenciesFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataS
val activity = activity as PokerAnalyticsActivity
// 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.supportActionBar?.setDisplayHomeAsUpEnabled(true)

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

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