|
|
|
|
@ -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) |
|
|
|
|
|