diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt b/app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt index 153d878f..20199a44 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/bankroll/BankrollReport.kt @@ -114,7 +114,7 @@ class BankrollReport(var setup: BankrollReportSetup) : RowRepresentable { * Computes the net banked amount */ private fun computeNetBanked() { - this.netBanked = this.withdrawalTotal - this.depositTotal + this.netBanked = -this.withdrawalTotal - this.depositTotal } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt index d114029c..0f37c4d8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt @@ -37,46 +37,46 @@ class BankrollActivity : PokerAnalyticsActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_bankroll) - this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended - this.computableResults.addChangeListener { t, changeSet -> - - val bankrolls = mutableSetOf() - val indexes = mutableSetOf() - indexes.addAll(changeSet.changes.toList()) - indexes.addAll(changeSet.insertions.toList()) - indexes.addAll(changeSet.deletions.toList()) - indexes.forEach { index -> - t[index]?.session?.bankroll?.let { br -> - bankrolls.add(br) - } - } - this.computeBankrollReports(bankrolls) - } - this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended - this.bankrolls.addChangeListener { _, changeSet -> - - - - - - } - this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended - this.transactions.addChangeListener { t, changeSet -> - - val bankrolls = mutableSetOf() - val indexes = mutableSetOf() - indexes.addAll(changeSet.changes.toList()) - indexes.addAll(changeSet.insertions.toList()) - indexes.addAll(changeSet.deletions.toList()) - indexes.forEach { index -> - if (t.isNotEmpty()) { - t[index]?.bankroll?.let { br -> - bankrolls.add(br) - } - } - } - this.computeBankrollReports(bankrolls) - } +// this.computableResults = getRealm().where(ComputableResult::class.java).findAll() // ComputableResult are existing only if sessions are ended +// this.computableResults.addChangeListener { t, changeSet -> +// +// val bankrolls = mutableSetOf() +// val indexes = mutableSetOf() +// indexes.addAll(changeSet.changes.toList()) +// indexes.addAll(changeSet.insertions.toList()) +// indexes.addAll(changeSet.deletions.toList()) +// indexes.forEach { index -> +// t[index]?.session?.bankroll?.let { br -> +// bankrolls.add(br) +// } +// } +// this.computeBankrollReports(bankrolls) +// } +// this.bankrolls = getRealm().where(Bankroll::class.java).findAll() // ComputableResult are existing only if sessions are ended +// this.bankrolls.addChangeListener { _, changeSet -> +// +// +// +// +// +// } +// this.transactions = getRealm().where(Transaction::class.java).findAll() // ComputableResult are existing only if sessions are ended +// this.transactions.addChangeListener { t, changeSet -> +// +// val bankrolls = mutableSetOf() +// val indexes = mutableSetOf() +// indexes.addAll(changeSet.changes.toList()) +// indexes.addAll(changeSet.insertions.toList()) +// indexes.addAll(changeSet.deletions.toList()) +// indexes.forEach { index -> +// if (t.isNotEmpty()) { +// t[index]?.bankroll?.let { br -> +// bankrolls.add(br) +// } +// } +// } +// this.computeBankrollReports(bankrolls) +// } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt index e6cbc3b2..a7ee9216 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt @@ -86,6 +86,8 @@ open class DataManagerFragment : RealmFragment() { protected open fun saveData() { val savable = this.item + this.willSaveData() + when (savable) { is Savable -> { val status = savable.getSaveValidityStatus(realm = this.getRealm()) @@ -117,6 +119,10 @@ open class DataManagerFragment : RealmFragment() { } + open fun willSaveData() { + + } + /** * Delete data */ diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/TransactionDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/TransactionDataFragment.kt index ea3e9964..789c00ed 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/TransactionDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/data/TransactionDataFragment.kt @@ -58,8 +58,18 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa override fun editDescriptors(row: RowRepresentable): ArrayList? { return when (row) { - TransactionRow.BANKROLL -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.bankroll, "data" to getRealm().sorted() )) - TransactionRow.TYPE -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.type, "data" to getRealm().sorted() )) + TransactionRow.BANKROLL -> row.editingDescriptors( + mapOf( + "defaultValue" to this.transaction.bankroll, + "data" to getRealm().sorted() + ) + ) + TransactionRow.TYPE -> row.editingDescriptors( + mapOf( + "defaultValue" to this.transaction.type, + "data" to getRealm().sorted() + ) + ) TransactionRow.AMOUNT -> row.editingDescriptors(mapOf("defaultValue" to (if (this.transaction.amount != 0.0) this.transaction.amount.round() else ""))) TransactionRow.COMMENT -> row.editingDescriptors(mapOf("defaultValue" to this.transaction.comment)) else -> super.editDescriptors(row) @@ -68,7 +78,14 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { when (row) { - TransactionRow.DATE -> DateTimePickerManager.create(requireContext(), row, this, this.transaction.date, onlyDate = true, isClearable = false) + TransactionRow.DATE -> DateTimePickerManager.create( + requireContext(), + row, + this, + this.transaction.date, + onlyDate = true, + isClearable = false + ) else -> super.onRowSelected(position, row, fromAction) } } @@ -80,7 +97,7 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa if (primaryKey == null) { // automatically change the row for new data GlobalScope.launch(Dispatchers.Main) { delay(200) - when(row) { + when (row) { TransactionRow.BANKROLL -> onRowSelected(0, TransactionRow.TYPE) TransactionRow.TYPE -> onRowSelected(0, TransactionRow.AMOUNT) // TransactionRow.AMOUNT -> onRowSelected(0, TransactionRow.DATE) @@ -88,7 +105,14 @@ class TransactionDataFragment : EditableDataFragment(), StaticRowRepresentableDa } } } + } + override fun willSaveData() { + super.willSaveData() + val additive = this.transaction.type?.additive ?: true + if (!additive) { + this.transaction.amount *= -1 + } } } \ No newline at end of file