Improve Bankroll edition

feature/top10
Aurelien Hubert 7 years ago
parent 9dd3d477b3
commit ff0a2d7697
  1. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  2. 43
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt

@ -21,7 +21,7 @@ open class Bankroll(name: String = "") : RealmObject(), Manageable, StaticRowRep
companion object { companion object {
fun newInstance() : Bankroll { fun newInstance() : Bankroll {
var bankroll: Bankroll = Bankroll() val bankroll = Bankroll()
return bankroll return bankroll
} }
@ -84,14 +84,10 @@ open class Bankroll(name: String = "") : RealmObject(), Manageable, StaticRowRep
this.live = if (value is Boolean) !value else false this.live = if (value is Boolean) !value else false
} }
BankrollRow.CURRENCY -> { BankrollRow.CURRENCY -> {
val localCurrency = if (currency != null) currency as Currency else realm.createObject(Currency::class.java) this.currency?.code = value as String?
localCurrency.code = value as String?
this.currency = localCurrency
} }
BankrollRow.RATE -> { BankrollRow.RATE -> {
val localCurrency = if (currency != null) currency as Currency else realm.createObject(Currency::class.java) this.currency?.rate = (value as String? ?: "0").toDouble()
localCurrency.rate = (value as String? ?: "0").toDouble()
this.currency = localCurrency
} }
} }
} }

@ -4,7 +4,10 @@ import android.app.Activity.RESULT_OK
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import io.realm.kotlin.where import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Bankroll import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.CurrenciesActivity import net.pokeranalytics.android.ui.activity.CurrenciesActivity
@ -37,8 +40,8 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
} }
private lateinit var defaultCurrency: Currency private lateinit var defaultCurrency: Currency
private val rows = ArrayList<RowRepresentable>()
val rows = ArrayList<RowRepresentable>() private var isRefreshingRate = false
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
@ -89,6 +92,14 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
} }
} }
override fun boolForRow(row: RowRepresentable): Boolean {
return when(row) {
BankrollRow.LIVE -> !bankroll.live
BankrollRow.REFRESH_RATE -> isRefreshingRate
else -> super.boolForRow(row)
}
}
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? { override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return when (row) { return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.bankroll.name)) SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.bankroll.name))
@ -97,13 +108,20 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
} }
} }
override fun boolForRow(row: RowRepresentable): Boolean {
return super.boolForRow(row)
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
when (row) { when (row) {
BankrollRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@BankrollDataFragment, BankrollDataFragment.REQUEST_CODE_CURRENCY) BankrollRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@BankrollDataFragment, BankrollDataFragment.REQUEST_CODE_CURRENCY)
BankrollRow.REFRESH_RATE -> {
isRefreshingRate = true
//TODO: Call web-service to get the currency rate
GlobalScope.launch(Dispatchers.Main) {
delay(1500)
isRefreshingRate = false
rowRepresentableAdapter.refreshRow(BankrollRow.REFRESH_RATE)
}
rowRepresentableAdapter.refreshRow(BankrollRow.REFRESH_RATE)
}
else -> super.onRowSelected(position, row, fromAction) else -> super.onRowSelected(position, row, fromAction)
} }
} }
@ -114,14 +132,17 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
} }
/**
* Init data
*/
private fun initData() { private fun initData() {
defaultCurrency = Currency.getInstance(Preferences.getCurrencyLocale(this.parentActivity)) defaultCurrency = Currency.getInstance(Preferences.getCurrencyLocale(this.parentActivity))
if (bankroll.currency == null) { if (!isUpdating) {
val realm = getRealm() bankroll.currency = net.pokeranalytics.android.model.realm.Currency()
val currency = realm.where<net.pokeranalytics.android.model.realm.Currency>().equalTo("code", defaultCurrency.currencyCode).findFirst() bankroll.currency?.code = defaultCurrency.currencyCode
bankroll.currency = currency bankroll.currency?.rate = 1.0
} }
} }

Loading…
Cancel
Save