diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 83fac011..312c9703 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -30,6 +30,7 @@
android:windowSoftInputMode="adjustNothing" />
+
+ CurrencyRow(
+ this.systemCurrencies.filter {
+ it.currencyCode == code
+ }.first()
+ )
+ }
+
+ private val availableCurrencies = this.systemCurrencies.filter {
+ !mostUsedCurrencyCodes.contains(it.currencyCode)
+ }.sortedBy {
+ it.displayName
+ }.map {
+ CurrencyRow(it)
+ }
+
+ private class CurrencyRow(var currency:Currency) : RowRepresentable {
+
+ override fun localizedTitle(context: Context): String {
+ return currency.getDisplayName(Locale.getDefault())
+ }
+
+ fun value(): String {
+ return "${currency.currencyCode} (${currency.getSymbol(Locale.getDefault())})"
+ }
+
+ override val viewType: Int = RowViewType.TITLE_VALUE.ordinal
+ }
+
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ return inflater.inflate(R.layout.fragment_currencies, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ initData()
+ initUI()
+ }
+
+
+ // StaticRowRepresentableDataSource
+
+ override fun adapterRows(): List? {
+ val rows = ArrayList()
+ rows.addAll(mostUsedCurrencies)
+ rows.add(HeaderRowRepresentable(customViewType = RowViewType.HEADER_SESSION, resId = R.string.currency))
+ rows.addAll(availableCurrencies)
+ return rows
+
+ }
+
+ override fun stringForRow(row: RowRepresentable): String {
+ return (row as CurrencyRow).value()
+ }
+
+ // RowRepresentableDelegate
+ override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
+ }
+
+ private fun initData() {
+ }
+
+ /**
+ * Init UI
+ */
+ private fun initUI() {
+
+ val activity = activity as PokerAnalyticsActivity
+
+ // Avoid a bug during setting the title
+ toolbar.title = activity.baseContext.getString( R.string.currency)
+
+ activity.setSupportActionBar(toolbar)
+ activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ setHasOptionsMenu(true)
+
+ val viewManager = LinearLayoutManager(requireContext())
+ val dataListAdapter = RowRepresentableAdapter(this, this)
+
+ recyclerView.apply {
+ setHasFixedSize(true)
+ layoutManager = viewManager
+ adapter = dataListAdapter
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
index 5341c686..a82357bd 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
@@ -8,7 +8,7 @@ import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_settings.*
import net.pokeranalytics.android.BuildConfig
-import net.pokeranalytics.android.R
+import net.pokeranalytics.android.ui.activity.CurrenciesActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
@@ -18,6 +18,9 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow
import net.pokeranalytics.android.util.*
+import android.content.Intent
+
+
class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, StaticRowRepresentableDataSource {
@@ -47,7 +50,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
- return inflater.inflate(R.layout.fragment_settings, container, false)
+ return inflater.inflate(net.pokeranalytics.android.R.layout.fragment_settings, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@@ -67,7 +70,9 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
SettingRow.RATE_APP -> parentActivity.openPlayStorePage()
SettingRow.CONTACT_US -> parentActivity.openContactMail()
SettingRow.BUG_REPORT -> Toast.makeText(requireContext(), "Bug report", Toast.LENGTH_SHORT).show()
- SettingRow.CURRENCY -> Toast.makeText(requireContext(), "Currency", Toast.LENGTH_SHORT).show()
+ SettingRow.CURRENCY -> {
+ CurrenciesActivity.newInstance(requireContext())
+ }
SettingRow.PRIVACY_POLICY -> parentActivity.openUrl(URL_PRIVACY_POLICY)
SettingRow.TERMS_OF_USE -> parentActivity.openUrl(URL_TERMS)
SettingRow.GDPR -> Toast.makeText(requireContext(), "Show GDPR", Toast.LENGTH_SHORT).show()
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 a283f7dc..f6eb8f1c 100644
--- a/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt
+++ b/app/src/main/java/net/pokeranalytics/android/util/Preferences.kt
@@ -29,6 +29,18 @@ class Preferences {
}
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));
+
+ */
val currencyLanguage = Preferences.getString(Keys.CURRENCY_LANGUAGE, context)
if (currencyLanguage != null) {
return Locale(currencyLanguage)
diff --git a/app/src/main/res/layout/activity_currencies.xml b/app/src/main/res/layout/activity_currencies.xml
new file mode 100644
index 00000000..72f6fd70
--- /dev/null
+++ b/app/src/main/res/layout/activity_currencies.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_currencies.xml b/app/src/main/res/layout/fragment_currencies.xml
new file mode 100644
index 00000000..bab049a9
--- /dev/null
+++ b/app/src/main/res/layout/fragment_currencies.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file