diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index acf5f807..4caf0748 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,11 @@ android:launchMode="singleTop" android:screenOrientation="portrait" /> + + - - diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt similarity index 55% rename from app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt rename to app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt index dfb626d5..4a9ef680 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/GraphActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt @@ -8,14 +8,10 @@ import kotlinx.android.synthetic.main.activity_graph.* import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.Stat import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity -import net.pokeranalytics.android.ui.fragment.GraphFragment +import net.pokeranalytics.android.ui.fragment.GraphParameters -class GraphParameters(stat: Stat, entries: List) { - var stat: Stat = stat - var entries: List = entries -} -class GraphActivity : PokerAnalyticsActivity() { +class StatisticDetailsActivity : PokerAnalyticsActivity() { private enum class IntentKey(val keyName: String) { STAT("STAT"), @@ -32,7 +28,7 @@ class GraphActivity : PokerAnalyticsActivity() { */ fun newInstance(context: Context, stat: Stat, entries: List) { parameters = GraphParameters(stat, entries) - val intent = Intent(context, GraphActivity::class.java) + val intent = Intent(context, StatisticDetailsActivity::class.java) context.startActivity(intent) } @@ -40,7 +36,7 @@ class GraphActivity : PokerAnalyticsActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_graph) + setContentView(R.layout.activity_statistic_details) initUI() } @@ -49,23 +45,6 @@ class GraphActivity : PokerAnalyticsActivity() { */ private fun initUI() { - setSupportActionBar(toolbar) - supportActionBar?.setDisplayHomeAsUpEnabled(true) - - val fragmentManager = supportFragmentManager - val fragmentTransaction = fragmentManager.beginTransaction() - val fragment = GraphFragment() - - fragmentTransaction.add(R.id.container, fragment) - fragmentTransaction.commit() - - GraphActivity.parameters?.let { - fragment.setData(it.stat, it.entries) - GraphActivity.parameters = null - } ?: run { - throw Exception("Missing graph parameters") - } - } } 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 10b1cee9..dca87b22 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 @@ -28,6 +28,11 @@ import net.pokeranalytics.android.util.extensions.px import net.pokeranalytics.android.util.extensions.toast import java.text.DateFormat +class GraphParameters(stat: Stat, entries: List) { + var stat: Stat = stat + var entries: List = entries +} + class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener { private lateinit var parentActivity: PokerAnalyticsActivity 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 new file mode 100644 index 00000000..50413327 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt @@ -0,0 +1,79 @@ +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 +import android.view.ViewGroup +import com.github.mikephil.charting.data.Entry +import kotlinx.android.synthetic.main.fragment_statistic_details.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.calculus.Stat +import net.pokeranalytics.android.ui.activity.StatisticDetailsActivity +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment + +class StatisticDetailsFragment : PokerAnalyticsFragment() { + + companion object { + fun newInstance(context: Context) { + val intent = Intent(context, StatisticDetailsFragment::class.java) + context.startActivity(intent) + } + } + + private lateinit var parentActivity: PokerAnalyticsActivity + + private var stat: Stat = Stat.NETRESULT + private var entries: List = ArrayList() + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_statistic_details, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initUI() + } + + /** + * Init UI + */ + private fun initUI() { + + parentActivity = activity as PokerAnalyticsActivity + + // Avoid a bug during setting the title + toolbar.title = "" + + parentActivity.setSupportActionBar(toolbar) + parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) + setHasOptionsMenu(true) + + toolbar.title = stat.localizedTitle(requireContext()) + + val fragmentManager = parentActivity.supportFragmentManager + val fragmentTransaction = fragmentManager.beginTransaction() + val fragment = GraphFragment() + + fragmentTransaction.add(R.id.container, fragment) + fragmentTransaction.commit() + + StatisticDetailsActivity.parameters?.let { + fragment.setData(it.stat, it.entries) + StatisticDetailsActivity.parameters = null + } ?: run { + throw Exception("Missing graph parameters") + } + } + + /** + * Set data + */ + fun setData(stat: Stat, entries: List) { + this.stat = stat + this.entries = entries + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt index 65cb1378..b10bd7a7 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt @@ -12,7 +12,7 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.* import net.pokeranalytics.android.model.StatRepresentable import net.pokeranalytics.android.model.filter.QueryCondition -import net.pokeranalytics.android.ui.activity.GraphActivity +import net.pokeranalytics.android.ui.activity.StatisticDetailsActivity import net.pokeranalytics.android.ui.adapter.DisplayDescriptor import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate @@ -237,7 +237,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc if (!isDetached) { report.results.firstOrNull()?.defaultStatEntries(stat)?.let { entries -> - GraphActivity.newInstance(requireContext(), stat, entries) + StatisticDetailsActivity.newInstance(requireContext(), stat, entries) } } } diff --git a/app/src/main/res/layout/activity_statistic_details.xml b/app/src/main/res/layout/activity_statistic_details.xml new file mode 100644 index 00000000..62d1cb20 --- /dev/null +++ b/app/src/main/res/layout/activity_statistic_details.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_statistic_details.xml b/app/src/main/res/layout/fragment_statistic_details.xml new file mode 100644 index 00000000..44e1e283 --- /dev/null +++ b/app/src/main/res/layout/fragment_statistic_details.xml @@ -0,0 +1,26 @@ + + + + + + + +