Refactor GraphActivity to StatisticDetailsActivity

feature/top10
Aurelien Hubert 7 years ago
parent dc3783427d
commit 023528c26f
  1. 10
      app/src/main/AndroidManifest.xml
  2. 29
      app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt
  3. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  4. 79
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt
  5. 4
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  6. 15
      app/src/main/res/layout/activity_statistic_details.xml
  7. 26
      app/src/main/res/layout/fragment_statistic_details.xml

@ -44,6 +44,11 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.StatisticDetailsActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.ComparisonChartActivity"
android:launchMode="singleTop"
@ -79,11 +84,6 @@
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.GraphActivity"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />

@ -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<Entry>) {
var stat: Stat = stat
var entries: List<Entry> = 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<Entry>) {
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")
}
}
}

@ -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<Entry>) {
var stat: Stat = stat
var entries: List<Entry> = entries
}
class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
private lateinit var parentActivity: PokerAnalyticsActivity

@ -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<Entry> = 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<Entry>) {
this.stat = stat
this.entries = entries
}
}

@ -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)
}
}
}

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical">
<fragment
android:id="@+id/statisticDetailsFragment"
android:name="net.pokeranalytics.android.ui.fragment.StatisticDetailsFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_statistic_details" />
</LinearLayout>

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:title="@string/app_name" />
<FrameLayout
android:id="@+id/container"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/toolbar" />
</androidx.constraintlayout.widget.ConstraintLayout>
Loading…
Cancel
Save