From 6124358f0ce86ce60cf678ae3e9f4b8a7637271c Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 16 May 2019 15:37:02 +0200 Subject: [PATCH] Factorize code + cleanup --- .../ui/activity/ProgressReportActivity.kt | 7 ++-- .../ui/activity/TableReportActivity.kt | 37 +++---------------- .../ui/fragment/CalendarDetailsFragment.kt | 10 +++-- .../android/ui/fragment/ReportsFragment.kt | 4 +- .../fragment/report/AbstractReportFragment.kt | 11 ++++++ .../report/ComparisonReportFragment.kt | 18 ++------- .../report/ComposableTableReportFragment.kt | 3 +- .../fragment/report/ProgressReportFragment.kt | 10 +---- .../ui/fragment/report/TableReportFragment.kt | 16 +------- 9 files changed, 38 insertions(+), 78 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt index edbee7d5..a1896f2d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/ProgressReportActivity.kt @@ -12,7 +12,7 @@ import net.pokeranalytics.android.ui.activity.components.ReportActivity import net.pokeranalytics.android.ui.fragment.report.ProgressReportFragment -class StatisticsDetailsParameters(var stat: Stat, var report: Report, var title: String? = null) +class StatisticsDetailsParameters(var stat: Stat, var report: Report, var title: String) class ProgressReportActivity : PokerAnalyticsActivity() { @@ -25,14 +25,14 @@ class ProgressReportActivity : PokerAnalyticsActivity() { /** * Default constructor */ - fun newInstance(context: Context, stat: Stat, report: Report, displayAggregationChoices: Boolean = true, title: String? = null) { + fun newInstance(context: Context, stat: Stat, report: Report, displayAggregationChoices: Boolean = true, title: String) { this.parameters = StatisticsDetailsParameters(stat, report, title) this.displayAggregationChoices = displayAggregationChoices val intent = Intent(context, ProgressReportActivity::class.java) context.startActivity(intent) } - fun newInstanceForResult(fragment: Fragment, stat: Stat, report: Report, displayAggregationChoices: Boolean = true, title: String? = null) { + fun newInstanceForResult(fragment: Fragment, stat: Stat, report: Report, displayAggregationChoices: Boolean = true, title: String) { this.parameters = StatisticsDetailsParameters(stat, report, title) this.displayAggregationChoices = displayAggregationChoices val intent = Intent(fragment.context, ProgressReportActivity::class.java) @@ -58,6 +58,7 @@ class ProgressReportActivity : PokerAnalyticsActivity() { fragmentTransaction.commit() parameters?.let { + statisticDetailsFragment.setData(it.stat, it.report, displayAggregationChoices, it.title) parameters = null } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt index 4f0153d0..56351782 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/TableReportActivity.kt @@ -7,33 +7,6 @@ import net.pokeranalytics.android.ui.fragment.report.TableReportFragment class TableReportActivity : ReportActivity() { -// companion object { -// const val DEFAULT_REQUEST_CODE = 1000 -// -// // Unparcel fails when setting a custom Parcelable object on Entry so we use a static reference to passe objects -// private var report: Report? = null -// private var reportTitle: String = "" -// -// /** -// * Default constructor -// */ -// fun newInstance(context: Context, report: Report, reportTitle: String) { -// this.report = report -// this.reportTitle = reportTitle -// val intent = Intent(context, TableReportActivity::class.java) -// context.startActivity(intent) -// } -// -// fun newInstanceForResult(fragment: Fragment, report: Report, reportTitle: String) { -// this.report = report -// this.reportTitle = reportTitle -// -// val intent = Intent(fragment.requireContext(), TableReportActivity::class.java) -// fragment.startActivityForResult(intent, DEFAULT_REQUEST_CODE) -// } -// -// } - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_table_report) @@ -45,10 +18,12 @@ class TableReportActivity : ReportActivity() { */ private fun initUI() { - val fragmentTransaction = supportFragmentManager.beginTransaction() - val fragment = TableReportFragment.newInstance(report, reportTitle) - fragmentTransaction.add(R.id.reportDetailsContainer, fragment) - fragmentTransaction.commit() + report?.let { + val fragmentTransaction = supportFragmentManager.beginTransaction() + val fragment = TableReportFragment.newInstance(it, reportTitle) + fragmentTransaction.add(R.id.reportDetailsContainer, fragment) + fragmentTransaction.commit() + } report = null } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt index 62b9ff3f..525f9a7f 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarDetailsFragment.kt @@ -150,10 +150,12 @@ class CalendarDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresentable override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { when (row) { is GraphRow -> { - row.report?.let { report -> - row.stat?.let { stat -> - ProgressReportActivity.newInstance(requireContext(), stat, report, false, row.title) - } + val report = row.report + val stat = row.stat + + if (report != null && stat != null) { + val title = row.title ?: stat.localizedTitle(requireContext()) + ProgressReportActivity.newInstance(requireContext(), stat, report, false, title) } } } 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 aa757a5c..88f39c7f 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 @@ -201,7 +201,9 @@ class ReportsFragment : DeletableItemFragment(), StaticRowRepresentableDataSourc // TableReportActivity.newInstance(requireContext(), report, reportName) } Calculator.Options.Display.PROGRESS -> { - ProgressReportActivity.newInstanceForResult(this@ReportsFragment, options.stats.first(), report) + val stat = options.stats.first() + val title = stat.localizedTitle(requireContext()) + ProgressReportActivity.newInstanceForResult(this@ReportsFragment, stat, report, title = title) } Calculator.Options.Display.COMPARISON -> { // ComparisonReportActivity.newInstance(requireContext(), report, reportName) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt index 024a8aba..0b3b62a7 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/AbstractReportFragment.kt @@ -40,7 +40,18 @@ abstract class AbstractReportFragment : DataManagerFragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + parentActivity = activity as PokerAnalyticsActivity + + // Avoid a bug during setting the titleResId + toolbar.title = "" + + parentActivity.setSupportActionBar(toolbar) + parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) + setHasOptionsMenu(true) + + toolbar.title = reportTitle + } override fun saveData() { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt index c8d85401..0b4b3c14 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComparisonReportFragment.kt @@ -5,7 +5,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import com.google.android.material.tabs.TabLayout -import kotlinx.android.synthetic.main.fragment_progress_report.toolbar import kotlinx.android.synthetic.main.fragment_report_details.* import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.Report @@ -14,16 +13,14 @@ import net.pokeranalytics.android.ui.adapter.ReportPagerAdapter class ComparisonReportFragment : AbstractReportFragment() { companion object { - fun newInstance(report: Report?, reportTitle: String): ComparisonReportFragment { + + fun newInstance(report: Report, reportTitle: String): ComparisonReportFragment { val fragment = ComparisonReportFragment() fragment.reportTitle = reportTitle - report?.let { - fragment.setReport(it) - } + fragment.setReport(report) val bundle = Bundle() fragment.arguments = bundle return fragment - } } @@ -49,15 +46,6 @@ class ComparisonReportFragment : AbstractReportFragment() { */ private fun initUI() { - // Avoid a bug during setting the titleResId - toolbar.title = "" - - parentActivity.setSupportActionBar(toolbar) - parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) - setHasOptionsMenu(true) - - toolbar.title = reportTitle - val reportPagerAdapter = ReportPagerAdapter(requireContext(), parentActivity.supportFragmentManager, selectedReport) viewPager.adapter = reportPagerAdapter viewPager.offscreenPageLimit = 3 diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComposableTableReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComposableTableReportFragment.kt index 9fc6c7a8..46f121f0 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComposableTableReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ComposableTableReportFragment.kt @@ -212,7 +212,8 @@ open class ComposableTableReportFragment : RealmFragment(), StaticRowRepresentab if (!isDetached) { hideLoader() report?.let { - ProgressReportActivity.newInstance(requireContext(), stat, it) + val title = stat.localizedTitle(requireContext()) + ProgressReportActivity.newInstance(requireContext(), stat, it, title = title) } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt index 40c3f66b..419a9262 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/ProgressReportFragment.kt @@ -64,7 +64,7 @@ class ProgressReportFragment : AbstractReportFragment() { /** * Set data */ - fun setData(stat: Stat, report: Report, displayAggregationChoices: Boolean, title: String? = null) { + fun setData(stat: Stat, report: Report, displayAggregationChoices: Boolean, title: String) { this.stat = stat this.setReport(report) this.displayAggregationChoices = displayAggregationChoices @@ -80,13 +80,6 @@ class ProgressReportFragment : AbstractReportFragment() { */ private fun initUI() { - // Avoid a bug during setting the titleResId - toolbar.title = "" - - parentActivity.setSupportActionBar(toolbar) - parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) - setHasOptionsMenu(true) - val fragmentManager = parentActivity.supportFragmentManager val fragmentTransaction = fragmentManager.beginTransaction() graphFragment = GraphFragment() @@ -100,7 +93,6 @@ class ProgressReportFragment : AbstractReportFragment() { } } - toolbar.title = this.reportTitle ?: stat.localizedTitle(requireContext()) val aggregationTypes = stat.aggregationTypes aggregationTypes.forEachIndexed { index, type -> diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt index 80eb7595..77cc36ba 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/report/TableReportFragment.kt @@ -4,7 +4,6 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import kotlinx.android.synthetic.main.fragment_progress_report.* import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.Report @@ -14,12 +13,10 @@ class TableReportFragment : AbstractReportFragment() { companion object { - fun newInstance(report: Report? = null, title: String? = null): TableReportFragment { + fun newInstance(report: Report, title: String): TableReportFragment { val fragment = TableReportFragment() fragment.reportTitle = title - report?.let { - fragment.setReport(it) - } + fragment.setReport(report) val bundle = Bundle() fragment.arguments = bundle return fragment @@ -38,15 +35,6 @@ class TableReportFragment : AbstractReportFragment() { private fun initUI() { - // Avoid a bug during setting the titleResId - toolbar.title = "" - - parentActivity.setSupportActionBar(toolbar) - parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) - setHasOptionsMenu(true) - - toolbar.title = reportTitle - val fragmentTransaction = parentActivity.supportFragmentManager.beginTransaction() val fragment = ComposableTableReportFragment.newInstance(this.selectedReport) fragmentTransaction.add(R.id.tableReportContainer, fragment)