diff --git a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt
index 62a47bf9..a76308ed 100644
--- a/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt
+++ b/app/src/androidTest/java/net/pokeranalytics/android/unitTests/BankrollInstrumentedUnitTest.kt
@@ -73,16 +73,16 @@ class BankrollInstrumentedUnitTest : SessionInstrumentedUnitTest() {
val br1 = realm.where(Bankroll::class.java).equalTo("name", "br1").findFirst()
val brSetup1 = BankrollReportSetup(br1)
- val report1 = BankrollCalculator.computeReport(brSetup1)
+ val report1 = BankrollCalculator.computeReport(realm, brSetup1)
Assert.assertEquals(400.0, report1.total, EPSILON)
val br2 = realm.where(Bankroll::class.java).equalTo("name", "br2").findFirst()
val brSetup2 = BankrollReportSetup(br2)
- val report2 = BankrollCalculator.computeReport(brSetup2)
+ val report2 = BankrollCalculator.computeReport(realm, brSetup2)
Assert.assertEquals(2000.0, report2.total, EPSILON)
val brSetupAll = BankrollReportSetup()
- val reportAll = BankrollCalculator.computeReport(brSetupAll)
+ val reportAll = BankrollCalculator.computeReport(realm, brSetupAll)
Assert.assertEquals(2400.0, reportAll.total, EPSILON)
}
@@ -117,11 +117,11 @@ class BankrollInstrumentedUnitTest : SessionInstrumentedUnitTest() {
}
val brSetup1 = BankrollReportSetup(br1)
- val report1 = BankrollCalculator.computeReport(brSetup1)
+ val report1 = BankrollCalculator.computeReport(realm, brSetup1)
Assert.assertEquals(400.0, report1.total, EPSILON)
val brSetupAll = BankrollReportSetup()
- val reportAll = BankrollCalculator.computeReport(brSetupAll)
+ val reportAll = BankrollCalculator.computeReport(realm, brSetupAll)
Assert.assertEquals(4000.0, reportAll.total, EPSILON)
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 0864aea4..44851fd3 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -57,6 +57,11 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
+
+
? = null
+ private var barDataSets: List? = null
+ private var style: GraphFragment.Style? = GraphFragment.Style.LINE
+ private var activityTitle: String? = null
+
+ /**
+ * Default constructor
+ */
+ fun newInstance(
+ context: Context, lineDataSets: List? = null, barDataSets: List? = null,
+ style: GraphFragment.Style = GraphFragment.Style.LINE, title: String? = null
+ ) {
+ this.lineDataSets = lineDataSets
+ this.barDataSets = barDataSets
+ this.style = style
+ this.activityTitle = title
+ val intent = Intent(context, GraphActivity::class.java)
+ context.startActivity(intent)
+ }
+
+ }
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_graph)
+ initUI()
+ }
+
+ /**
+ * Init UI
+ */
+ private fun initUI() {
+
+ activityTitle?.let {
+ setSupportActionBar(toolbar)
+ supportActionBar?.setDisplayHomeAsUpEnabled(true)
+ title = activityTitle
+ activityTitle = null
+ }
+
+ style?.let {
+ val fragmentTransaction = supportFragmentManager.beginTransaction()
+ val graphFragment = GraphFragment.newInstance(lineDataSets, barDataSets, it)
+ fragmentTransaction.add(R.id.container, graphFragment)
+ fragmentTransaction.commit()
+ }
+
+ lineDataSets = null
+ barDataSets = null
+ style = null
+ }
+
+}
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 442c6bab..fb7628b6 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
@@ -7,8 +7,8 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
+import com.github.mikephil.charting.data.LineDataSet
import com.google.android.material.snackbar.Snackbar
-import io.realm.Realm
import io.realm.RealmObject
import io.realm.RealmResults
import kotlinx.android.synthetic.main.fragment_bankroll.*
@@ -31,7 +31,7 @@ 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
+import net.pokeranalytics.android.ui.activity.GraphActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
@@ -107,13 +107,8 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
when (row) {
is GraphRow -> {
- row.report?.let { report ->
- row.stat?.let { stat ->
- report.results.firstOrNull()?.group?.let { computableGroup ->
- StatisticDetailsActivity.newInstance(requireContext(), stat, computableGroup, report, false, row.title)
- }
- }
- }
+ val lineDataSet = row.dataSet as LineDataSet
+ GraphActivity.newInstance(requireContext(), listOf(lineDataSet), title = getString(R.string.bankroll))
}
else -> {
if (bankrollReportForRow.containsKey(row)) {
@@ -138,29 +133,30 @@ class BankrollFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSou
GlobalScope.launch {
- val startDate = Date()
- val realm = Realm.getDefaultInstance()
+ launch(Dispatchers.Main) {
- // Graph
- val globalBankrollReportSetup = BankrollReportSetup()
- val globalBankrollReport = BankrollCalculator.computeReport(globalBankrollReportSetup)
- rows.add(0, GraphRow(dataSet = globalBankrollReport.lineDataSet(requireContext())))
- rows.add(globalBankrollReport)
- bankrollReportForRow[globalBankrollReport] = globalBankrollReport
+ val startDate = Date()
+ //val realm = Realm.getDefaultInstance()
- // Bankrolls
- rows.add(CustomizableRowRepresentable(RowViewType.HEADER_TITLE, resId = R.string.bankrolls))
+ // Graph
+ val globalBankrollReportSetup = BankrollReportSetup()
+ val globalBankrollReport = BankrollCalculator.computeReport(getRealm(), globalBankrollReportSetup)
+ rows.add(0, GraphRow(dataSet = globalBankrollReport.lineDataSet(requireContext())))
+ rows.add(globalBankrollReport)
+ bankrollReportForRow[globalBankrollReport] = globalBankrollReport
- realm.close()
- Timber.d("initData: ${System.currentTimeMillis() - startDate.time}ms")
+ // Bankrolls
+ rows.add(CustomizableRowRepresentable(RowViewType.HEADER_TITLE, resId = R.string.bankrolls))
+
+ //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 bankrollReport = BankrollCalculator.computeReport(getRealm(), bankrollReportSetup)
val computedStat = ComputedStat(Stat.NET_RESULT, bankrollReport.total)
val row = CustomizableRowRepresentable(RowViewType.TITLE_VALUE_ARROW, title = it.name, computedStat = computedStat, isSelectable = true)
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
index 2d802873..b8d4fccb 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
@@ -22,6 +22,7 @@ import net.pokeranalytics.android.ui.graph.GraphUnderlyingEntry
import net.pokeranalytics.android.ui.graph.setStyle
import net.pokeranalytics.android.ui.view.LegendView
import net.pokeranalytics.android.ui.view.MultiLineLegendView
+import timber.log.Timber
class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
@@ -101,7 +102,6 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
private fun initUI() {
parentActivity = activity as PokerAnalyticsActivity
- parentActivity.title = stat.localizedTitle(requireContext())
this.legendView = when (this.style) {
Style.MULTILINE -> MultiLineLegendView(requireContext())
@@ -129,15 +129,12 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chartView = lineChart
dataSets.firstOrNull()?.let { dataSet ->
-
this.legendView.prepareWithStat(this.stat, dataSet.entryCount, this.style)
if (dataSet.entryCount > 0) {
val entry = dataSet.getEntryForIndex(dataSet.entryCount - 1)
this.selectValue(entry, dataSet)
-
}
}
-
}
this.barDataSetList?.let { dataSets ->
@@ -182,7 +179,7 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
}
}
- private fun selectValue(entry: Entry, dataSet: IBarLineScatterCandleBubbleDataSet? = null) {
+ private fun selectValue(entry: Entry, dataSet: IBarLineScatterCandleBubbleDataSet? = null) {
val statEntry = when (entry.data) {
is ObjectIdentifier -> {