diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Report.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Report.kt index 4b334d73..4876b646 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Report.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Report.kt @@ -380,8 +380,10 @@ class ComputedResults(group: ComputableGroup, shouldManageMultiGroupProgressValu return entries } - val isEmpty: Boolean = this.group.isEmpty - + val isEmpty: Boolean + get() { + return this.group.isEmpty + } // Stat Entry diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt index f5c838d3..a5b12c9d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt @@ -11,16 +11,10 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.fragment.StatisticDetailsFragment -class StatisticsDetailsParameters(var stat: Stat, var computableGroup: ComputableGroup, var report: Report) { -} +class StatisticsDetailsParameters(var stat: Stat, var computableGroup: ComputableGroup, var report: Report) class StatisticDetailsActivity : PokerAnalyticsActivity() { - private enum class IntentKey(val keyName: String) { - STAT("STATS"), - ENTRIES("ENTRIES"), - } - companion object { // Unparcel fails when setting a custom Parcelable object on Entry so we use a static reference to passe objects 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 69fe9938..2492ed13 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 @@ -20,7 +20,6 @@ import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.graph.PALineDataSet import net.pokeranalytics.android.ui.graph.setStyle import net.pokeranalytics.android.ui.view.LegendView -import timber.log.Timber import kotlin.coroutines.CoroutineContext @@ -97,7 +96,6 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener, Co * Init UI */ private fun initUI() { - Timber.d("initUI") parentActivity = activity as PokerAnalyticsActivity parentActivity.title = stat.localizedTitle(requireContext()) @@ -118,7 +116,6 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener, Co * Load graph */ private fun loadGraph() { - Timber.d("loadGraph") val graphEntries = when (aggregationType) { AggregationType.SESSION, AggregationType.DURATION -> selectedReport.results.firstOrNull()?.defaultStatEntries(stat) @@ -167,12 +164,11 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener, Co /** * Set data */ - fun setData(report: Report, aggregationType: AggregationType) { - Timber.d("setData") + fun setData(report: Report, stat: Stat, aggregationType: AggregationType) { this.selectedReport = report this.aggregationType = aggregationType - this.stat = report.options.displayedStats.first() + this.stat = stat if (isAdded && !isDetached) { loadGraph() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt index ec862ad2..68c32e28 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -18,6 +18,7 @@ import net.pokeranalytics.android.ui.activity.ReportDetailsActivity 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.fragment.components.LoaderDialogFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.ReportRow @@ -105,6 +106,9 @@ class ReportsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSour */ private fun launchComputation(comparators: List, reportName: String) { + //val loader = LoaderDialogFragment.newInstance() + //loader.show(activity?.supportFragmentManager, "loader") + GlobalScope.launch { val startDate = Date() diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt index 37ac6e25..6c2e288d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt @@ -1,7 +1,5 @@ package net.pokeranalytics.android.ui.fragment -import android.content.Context -import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.view.View @@ -29,9 +27,15 @@ import java.util.* class StatisticDetailsFragment : PokerAnalyticsFragment() { companion object { - fun newInstance(context: Context) { - val intent = Intent(context, StatisticDetailsFragment::class.java) - context.startActivity(intent) + + /** + * Create new instance + */ + fun newInstance(): StatisticDetailsFragment { + val fragment = StatisticDetailsFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment } } @@ -75,10 +79,9 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() { fragmentTransaction.add(R.id.graphContainer, graphFragment) fragmentTransaction.commit() - stat.aggregationTypes.firstOrNull()?.let { aggregationType -> reports[aggregationType]?.let { report -> - graphFragment.setData(report, aggregationType) + graphFragment.setData(report, stat, aggregationType) } } @@ -103,7 +106,7 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() { val aggregationType = aggregationTypes[checkedId] reports[aggregationType]?.let { report -> - graphFragment.setData(report, aggregationType) + graphFragment.setData(report, stat, aggregationType) } ?: run { launchStatComputation(aggregationType) } @@ -140,7 +143,7 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() { Timber.d(">>> ended in $duration seconds") launch(Dispatchers.Main) { - graphFragment.setData(report, aggregationType) + graphFragment.setData(report, stat, aggregationType) progressBar.hideWithAnimation() graphContainer.showWithAnimation() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt new file mode 100644 index 00000000..59f45ca7 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/LoaderDialogFragment.kt @@ -0,0 +1,28 @@ +package net.pokeranalytics.android.ui.fragment.components + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.DialogFragment +import net.pokeranalytics.android.R + +class LoaderDialogFragment: DialogFragment() { + + companion object { + /** + * Create new instance + */ + fun newInstance(): LoaderDialogFragment { + val fragment = LoaderDialogFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_loader, container, false) + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_loader.xml b/app/src/main/res/layout/fragment_loader.xml new file mode 100644 index 00000000..0a2390f5 --- /dev/null +++ b/app/src/main/res/layout/fragment_loader.xml @@ -0,0 +1,31 @@ + + + + + + + + \ No newline at end of file