diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8c2989ed..7ef8c9cd 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,11 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
+
+
= ArrayList()
+
+ // Life Cycle
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
+ return inflater.inflate(R.layout.fragment_bankroll_details, container, false)
+ }
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ initUI()
+ initData()
+ }
+
+ override fun adapterRows(): List? {
+ return rows
+ }
+
+ override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
+
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
+ menu?.clear()
+ inflater?.inflate(R.menu.toolbar_comparison_chart, menu)
+ this.bankrollDetailsMenu = menu
+ updateMenuUI()
+ super.onCreateOptionsMenu(menu, inflater)
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem?): Boolean {
+ when (item!!.itemId) {
+ R.id.settings -> editBankroll()
+ }
+ return true
+ }
+
+ // Business
+
+ /**
+ * Init data
+ */
+ private fun initData() {
+
+ rows.clear()
+
+ rows.add(CustomizableRowRepresentable(RowViewType.HEADER_TITLE, resId = R.string.global))
+
+ val totalComputedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.total)
+ val netComputedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.netResult)
+ val netBankedComputedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.netBanked)
+
+ rows.add(CustomizableRowRepresentable(RowViewType.TITLE_VALUE, resId = R.string.bankroll, computedStat = totalComputedStat))
+ rows.add(CustomizableRowRepresentable(RowViewType.TITLE_VALUE, resId = R.string.net_result, computedStat = netComputedStat))
+ rows.add(CustomizableRowRepresentable(RowViewType.TITLE_VALUE, resId = R.string.net_banked, computedStat = netBankedComputedStat))
+
+ }
+
+ /**
+ * Init UI
+ */
+ private fun initUI() {
+
+ parentActivity = activity as PokerAnalyticsActivity
+
+ parentActivity.setSupportActionBar(toolbar)
+ parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ setHasOptionsMenu(true)
+
+ Timber.d("bankrollReport: ${bankrollReport.setup.bankroll} ${bankrollReport.setup.virtualBankroll}")
+
+ if (bankrollReport.setup.virtualBankroll) {
+ toolbar.title = getString(R.string.total)
+ bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = false
+ } else {
+ toolbar.title = bankrollReport.setup.bankroll?.name
+ bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = true
+ }
+
+ toolbar.title = if (bankrollReport.setup.virtualBankroll) getString(R.string.total) else bankrollReport.setup.bankroll?.name
+
+ bankrollAdapter = RowRepresentableAdapter(this, this)
+
+ val viewManager = LinearLayoutManager(requireContext())
+
+ recyclerView.apply {
+ setHasFixedSize(true)
+ layoutManager = viewManager
+ adapter = bankrollAdapter
+ }
+ }
+
+ /**
+ * Update menu UI
+ */
+ private fun updateMenuUI() {
+ bankrollDetailsMenu?.findItem(R.id.settings)?.isVisible = !bankrollReport.setup.virtualBankroll
+ }
+
+ /**
+ * Open Bankroll edit activity
+ */
+ private fun editBankroll() {
+ EditableDataActivity.newInstanceForResult(this, LiveData.BANKROLL.ordinal, bankrollReport.setup.bankroll?.id, REQUEST_CODE_EDIT)
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt
index dd25a45f..53bf74e9 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt
@@ -32,6 +32,7 @@ import net.pokeranalytics.android.model.Criteria
import net.pokeranalytics.android.model.LiveData
import net.pokeranalytics.android.model.interfaces.Deletable
import net.pokeranalytics.android.model.realm.Bankroll
+import net.pokeranalytics.android.ui.activity.BankrollDetailsActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.StatisticDetailsActivity
@@ -39,8 +40,6 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
-import net.pokeranalytics.android.ui.extensions.toast
-import net.pokeranalytics.android.ui.fragment.DataListFragment.Companion.REQUEST_CODE_DETAILS
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
@@ -54,6 +53,8 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
companion object {
+ const val REQUEST_CODE_DETAILS = 1000
+
/**
* Create new instance
*/
@@ -106,7 +107,7 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
Timber.d("onRowSelected: $row")
- when(row) {
+ when (row) {
is GraphRow -> {
row.report.results.firstOrNull()?.group?.let { computableGroup ->
StatisticDetailsActivity.newInstance(requireContext(), row.stat, computableGroup, row.report, false, row.title)
@@ -114,8 +115,9 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
}
else -> {
if (bankrollReportForRow.containsKey(row)) {
- val bankrollReport = bankrollReportForRow[row]
- toast("${bankrollReport?.total}")
+ bankrollReportForRow[row]?.let { bankrollReport ->
+ BankrollDetailsActivity.newInstanceForResult(this, bankrollReport, REQUEST_CODE_DETAILS)
+ }
}
}
}
@@ -156,22 +158,24 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
// Bankrolls
rows.add(CustomizableRowRepresentable(RowViewType.HEADER_TITLE, resId = R.string.bankrolls))
- val bankrolls = LiveData.BANKROLL.items(realm) as RealmResults
-
- bankrolls.forEach {
- val bankrollReportSetup = BankrollReportSetup(it)
- val bankrollReport = BankrollCalculator.computeReport(bankrollReportSetup)
- val computedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.total)
- val row = CustomizableRowRepresentable(RowViewType.TITLE_VALUE_ARROW, title = it.name, computedStat = computedStat, isSelectable = true)
-
- rows.add(row)
- bankrollReportForRow[row] = bankrollReport
- }
-
realm.close()
Timber.d("initData: ${System.currentTimeMillis() - startDate.time}ms")
launch(Dispatchers.Main) {
+
+ val bankrolls = LiveData.BANKROLL.items(getRealm()) as RealmResults
+
+ bankrolls.forEach {
+ val bankrollReportSetup = BankrollReportSetup(it)
+ val bankrollReport = BankrollCalculator.computeReport(bankrollReportSetup)
+ val computedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.total)
+ val row = CustomizableRowRepresentable(RowViewType.TITLE_VALUE_ARROW, title = it.name, computedStat = computedStat, isSelectable = true)
+
+ rows.add(row)
+ bankrollReportForRow[row] = bankrollReport
+ }
+
+
if (!isDetached) {
bankrollAdapter.notifyDataSetChanged()
}
diff --git a/app/src/main/res/layout/activity_bankroll_details.xml b/app/src/main/res/layout/activity_bankroll_details.xml
new file mode 100644
index 00000000..70454fb9
--- /dev/null
+++ b/app/src/main/res/layout/activity_bankroll_details.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_bankroll_details.xml b/app/src/main/res/layout/fragment_bankroll_details.xml
new file mode 100644
index 00000000..0cf1c9b1
--- /dev/null
+++ b/app/src/main/res/layout/fragment_bankroll_details.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/toolbar_bankroll_details.xml b/app/src/main/res/menu/toolbar_bankroll_details.xml
new file mode 100644
index 00000000..2132026e
--- /dev/null
+++ b/app/src/main/res/menu/toolbar_bankroll_details.xml
@@ -0,0 +1,11 @@
+
+
\ No newline at end of file