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. 31
      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 -> { BankrollRow.LIVE -> {
this.live = if (value is Boolean) !value else false 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 package net.pokeranalytics.android.ui.fragment
import android.app.Activity.RESULT_OK
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 io.realm.kotlin.where
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.adapter.RowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
@ -23,6 +26,10 @@ import java.util.*
*/ */
class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataSource { class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataSource {
companion object {
const val REQUEST_CODE_CURRENCY: Int = 100
}
// Return the item as a Bankroll object // Return the item as a Bankroll object
private val bankroll: Bankroll private val bankroll: Bankroll
get() { get() {
@ -43,6 +50,16 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
updateAdapterUI() 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 { override fun getDataSource(): RowRepresentableDataSource {
return this return this
} }
@ -75,9 +92,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
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))
BankrollRow.RATE -> { BankrollRow.RATE -> row.editingDescriptors(mapOf("defaultValue" to (this.bankroll.currency?.rate ?: 1.0).round()))
row.editingDescriptors(mapOf("defaultValue" to (this.bankroll.currency?.rate ?: 1.0).round()))
}
else -> null else -> null
} }
} }
@ -87,11 +102,16 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
} }
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { 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) { override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
super.onRowValueChanged(value, row) super.onRowValueChanged(value, row)
updateAdapterUI()
} }
private fun initData() { private fun initData() {
@ -119,10 +139,9 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
val defaultCurrency = Currency.getInstance(Preferences.getCurrencyLocale(this.parentActivity)) val defaultCurrency = Currency.getInstance(Preferences.getCurrencyLocale(this.parentActivity))
var differentCurrency = false var differentCurrency = false
bankroll.currency?.let {bankrollCurrency -> bankroll.currency?.let { bankrollCurrency ->
differentCurrency = bankrollCurrency.code != defaultCurrency.currencyCode differentCurrency = bankrollCurrency.code != defaultCurrency.currencyCode
} }
differentCurrency = true
if (differentCurrency) { if (differentCurrency) {
rows.add(BankrollRow.RATE) rows.add(BankrollRow.RATE)

@ -1,5 +1,6 @@
package net.pokeranalytics.android.ui.view.rowrepresentable package net.pokeranalytics.android.ui.view.rowrepresentable
import android.text.InputType
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType
import net.pokeranalytics.android.ui.view.DefaultEditable 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>? { override fun editingDescriptors(map: Map<String, Any?>): ArrayList<RowRepresentableEditDescriptor>? {
return when (this) {
return super<RowRepresentable>.editingDescriptors(map) 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