Working on Bankroll

feature/top10
Aurelien Hubert 7 years ago
parent ad815ea029
commit 9c3d7ec519
  1. 10
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  2. 29
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt
  3. 13
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt

@ -83,6 +83,16 @@ open class Bankroll(name: String = "") : RealmObject(), Manageable, StaticRowRep
BankrollRow.LIVE -> {
this.live = if (value is Boolean) !value else false
}
BankrollRow.CURRENCY -> {
val localCurrency = if (currency != null) currency as Currency else realm.createObject(Currency::class.java)
localCurrency.code = value as String?
this.currency = localCurrency
}
BankrollRow.RATE -> {
val localCurrency = if (currency != null) currency as Currency else realm.createObject(Currency::class.java)
localCurrency.rate = (value as String? ?: "0").toDouble()
this.currency = localCurrency
}
}
}

@ -1,10 +1,13 @@
package net.pokeranalytics.android.ui.fragment
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.os.Bundle
import android.view.View
import io.realm.kotlin.where
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.CurrenciesActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
@ -23,6 +26,10 @@ import java.util.*
*/
class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataSource {
companion object {
const val REQUEST_CODE_CURRENCY: Int = 100
}
// Return the item as a Bankroll object
private val bankroll: Bankroll
get() {
@ -43,6 +50,16 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
updateAdapterUI()
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == REQUEST_CODE_CURRENCY && resultCode == RESULT_OK) {
data?.let {
val currencyCode = it.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE)
onRowValueChanged(currencyCode, BankrollRow.CURRENCY)
}
}
}
override fun getDataSource(): RowRepresentableDataSource {
return this
}
@ -75,9 +92,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? {
return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.bankroll.name))
BankrollRow.RATE -> {
row.editingDescriptors(mapOf("defaultValue" to (this.bankroll.currency?.rate ?: 1.0).round()))
}
BankrollRow.RATE -> row.editingDescriptors(mapOf("defaultValue" to (this.bankroll.currency?.rate ?: 1.0).round()))
else -> null
}
}
@ -87,11 +102,16 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
super.onRowSelected(position, row, fromAction)
when (row) {
BankrollRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@BankrollDataFragment, BankrollDataFragment.REQUEST_CODE_CURRENCY)
else -> super.onRowSelected(position, row, fromAction)
}
}
override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
super.onRowValueChanged(value, row)
updateAdapterUI()
}
private fun initData() {
@ -122,7 +142,6 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
bankroll.currency?.let { bankrollCurrency ->
differentCurrency = bankrollCurrency.code != defaultCurrency.currencyCode
}
differentCurrency = true
if (differentCurrency) {
rows.add(BankrollRow.RATE)

@ -1,5 +1,6 @@
package net.pokeranalytics.android.ui.view.rowrepresentable
import android.text.InputType
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType
import net.pokeranalytics.android.ui.view.DefaultEditable
@ -45,7 +46,15 @@ enum class BankrollRow : RowRepresentable, DefaultEditable {
}
override fun editingDescriptors(map: Map<String, Any?>): ArrayList<RowRepresentableEditDescriptor>? {
return super<RowRepresentable>.editingDescriptors(map)
return when (this) {
BankrollRow.RATE -> {
val defaultValue : Any? by map
arrayListOf(
RowRepresentableEditDescriptor(defaultValue, R.string.rate, InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL)
)
}
else -> super<RowRepresentable>.editingDescriptors(map)
}
}
}
Loading…
Cancel
Save