Merge branch 'dev' of gitlab.com:stax-river/poker-analytics into dev

feature/top10
Aurelien Hubert 7 years ago
commit b441f6806f
  1. 2
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 11
      app/src/main/java/net/pokeranalytics/android/calculus/Stat.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/extensions/ChipGroupExtension.kt
  4. 9
      app/src/main/java/net/pokeranalytics/android/ui/extensions/UIExtensions.kt
  5. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt
  6. 14
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  7. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
  8. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  9. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt
  10. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt
  11. 15
      app/src/main/java/net/pokeranalytics/android/ui/graph/ChartDataSet.kt
  12. 93
      app/src/main/java/net/pokeranalytics/android/ui/graph/GraphExtensions.kt
  13. 7
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  14. 10
      app/src/main/java/net/pokeranalytics/android/ui/view/fields/FieldsExtension.kt
  15. 1
      app/src/main/res/values/colors.xml

@ -51,7 +51,7 @@ class PokerAnalyticsApplication : Application() {
}
if (BuildConfig.DEBUG) {
// this.createFakeSessions()
this.createFakeSessions()
}
}

@ -201,7 +201,16 @@ enum class Stat : RowRepresentable {
get() {
return when (this) {
NETRESULT -> listOf(AggregationType.SESSION, AggregationType.MONTH, AggregationType.YEAR, AggregationType.DURATION)
else -> listOf(AggregationType.SESSION, AggregationType.MONTH, AggregationType.YEAR, AggregationType.DURATION)
NUMBER_OF_GAMES, NUMBER_OF_SETS -> listOf(AggregationType.MONTH, AggregationType.YEAR)
else -> listOf(AggregationType.SESSION, AggregationType.MONTH, AggregationType.YEAR)
}
}
val hasEvolutionGraph: Boolean
get() {
return when (this) {
DURATION, AVERAGE_DURATION -> false
else -> true
}
}

@ -1,4 +1,4 @@
package net.pokeranalytics.android.util.extensions
package net.pokeranalytics.android.ui.extensions
import com.google.android.material.chip.ChipGroup

@ -1,4 +1,4 @@
package net.pokeranalytics.android.util.extensions
package net.pokeranalytics.android.ui.extensions
import android.content.ActivityNotFoundException
import android.content.Context
@ -7,10 +7,12 @@ import android.content.res.Resources
import android.net.Uri
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.AppCompatTextView
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import net.pokeranalytics.android.BuildConfig
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.TextFormat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.util.DeviceUtils
@ -100,4 +102,9 @@ fun showAlertDialog(context: Context, title: Int? = null, message: Int? = null)
}
builder.setPositiveButton(R.string.ok, null)
builder.show()
}
fun AppCompatTextView.setTextFormat(textFormat: TextFormat, context: Context) {
this.setTextColor(textFormat.getColor(context))
this.text = textFormat.text
}

@ -13,7 +13,7 @@ import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.MoreTabRow
import net.pokeranalytics.android.util.extensions.toast
import net.pokeranalytics.android.ui.extensions.toast
class ComparisonChartFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {

@ -9,7 +9,6 @@ import com.github.mikephil.charting.charts.BarLineChartBase
import com.github.mikephil.charting.charts.LineChart
import com.github.mikephil.charting.data.Entry
import com.github.mikephil.charting.data.LineData
import com.github.mikephil.charting.data.LineDataSet
import com.github.mikephil.charting.highlight.Highlight
import com.github.mikephil.charting.listener.OnChartValueSelectedListener
import com.google.android.material.chip.Chip
@ -21,11 +20,12 @@ import net.pokeranalytics.android.calculus.ObjectIdentifier
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
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 net.pokeranalytics.android.util.extensions.ChipGroupExtension
import net.pokeranalytics.android.util.extensions.px
import net.pokeranalytics.android.util.extensions.toast
import net.pokeranalytics.android.ui.extensions.ChipGroupExtension
import net.pokeranalytics.android.ui.extensions.px
import net.pokeranalytics.android.ui.extensions.toast
import java.text.DateFormat
class GraphParameters(stat: Stat, entries: List<Entry>) {
@ -73,7 +73,7 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.legendContainer.addView(this.legendView)
this.legendView.prepareWithStat(this.stat, this.entries.size)
val dataSet = LineDataSet(this.entries, this.stat.name)
val dataSet = PALineDataSet(this.entries, this.stat.name, requireContext())
val colors = arrayOf(R.color.green_light).toIntArray()
dataSet.setColors(colors, context)
dataSet.setDrawCircles(false)
@ -93,9 +93,11 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chartContainer.addView(this.chartView)
this.chartView.setStyle(requireContext())
this.chartView.setStyle(false, requireContext())
this.chartView.setOnChartValueSelectedListener(this)
this.chartView.highlightValue((this.entries.size - 1).toFloat(), 0)
this.stat.aggregationTypes.forEach { type ->
val chip = Chip(requireContext())
chip.id = type.ordinal

@ -25,9 +25,9 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow
import net.pokeranalytics.android.util.Preferences
import net.pokeranalytics.android.util.URL
import net.pokeranalytics.android.util.UserDefaults
import net.pokeranalytics.android.util.extensions.openContactMail
import net.pokeranalytics.android.util.extensions.openPlayStorePage
import net.pokeranalytics.android.util.extensions.openUrl
import net.pokeranalytics.android.ui.extensions.openContactMail
import net.pokeranalytics.android.ui.extensions.openPlayStorePage
import net.pokeranalytics.android.ui.extensions.openUrl
import java.util.*

@ -199,7 +199,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
if (row is StatRepresentable) {
if (row is StatRepresentable && row.stat.hasEvolutionGraph) {
// filter groups
val groupResults = this.report?.results?.filter {

@ -14,7 +14,7 @@ import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorExcep
import net.pokeranalytics.android.model.Limit
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.util.extensions.px
import net.pokeranalytics.android.ui.extensions.px
/**
* Bottom Sheet List Game Fragment

@ -13,7 +13,7 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.GridSpacingItemDecoration
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.util.extensions.px
import net.pokeranalytics.android.ui.extensions.px
class BottomSheetTableSizeGridFragment : BottomSheetFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate {

@ -0,0 +1,15 @@
package net.pokeranalytics.android.ui.graph
import android.content.Context
import com.github.mikephil.charting.data.Entry
import com.github.mikephil.charting.data.LineDataSet
import net.pokeranalytics.android.R
class PALineDataSet(yVals: List<Entry>, label: String, context: Context) : LineDataSet(yVals, label) {
init {
this.highLightColor = context.getColor(R.color.chart_highlight_indicator)
}
}

@ -1,76 +1,61 @@
package net.pokeranalytics.android.ui.graph
import android.content.Context
import android.graphics.Typeface
import androidx.core.content.ContextCompat
import com.github.mikephil.charting.charts.BarLineChartBase
import com.github.mikephil.charting.components.XAxis
import net.pokeranalytics.android.R
import net.pokeranalytics.android.util.extensions.px
import net.pokeranalytics.android.ui.extensions.px
//fun BarChart.setStyle(context: Context) {
// GraphHelper.setStyle(this, context)
//}
fun BarLineChartBase<*>.setStyle(small: Boolean, context: Context) {
fun BarLineChartBase<*>.setStyle(context: Context) {
GraphHelper.setStyle(this, context)
}
// X Axis
this.xAxis.axisLineColor = ContextCompat.getColor(context, R.color.chart_default)
this.xAxis.enableGridDashedLine(3.0f.px, 5.0f.px, 1.0f.px)
this.xAxis.textColor = ContextCompat.getColor(context, R.color.chart_default)
this.xAxis.labelCount = 4
this.xAxis.position = XAxis.XAxisPosition.BOTTOM
class GraphHelper {
this.xAxis.textColor = ContextCompat.getColor(context, R.color.chart_default)
this.xAxis.typeface = Typeface.DEFAULT
this.xAxis.labelCount = 4
this.xAxis.position = XAxis.XAxisPosition.BOTTOM
companion object {
this.xAxis.setDrawLabels(true)
this.xAxis.setDrawGridLines(true)
this.xAxis.granularity = 1.0f
this.xAxis.isGranularityEnabled = true
this.xAxis.isEnabled = true
fun setStyle(chart: BarLineChartBase<*>, context: Context) {
// Y Axis
this.axisLeft.setDrawAxisLine(false)
this.axisLeft.setDrawGridLines(true)
this.axisLeft.enableGridDashedLine(3.0f.px, 5.0f.px, 1.0f.px)
chart.xAxis.axisLineColor = ContextCompat.getColor(context, R.color.chart_default)
chart.xAxis.enableGridDashedLine(3.0f.px, 5.0f.px, 1.0f.px)
chart.xAxis.textColor = ContextCompat.getColor(context, R.color.chart_default)
chart.xAxis.labelCount = 4
chart.xAxis.position = XAxis.XAxisPosition.BOTTOM
this.axisLeft.setDrawZeroLine(true)
// this.axisLeft.zeroLineWidth = 1.0f.px
this.axisLeft.zeroLineColor = ContextCompat.getColor(context, R.color.chart_default)
chart.axisLeft.enableGridDashedLine(3.0f.px, 5.0f.px, 1.0f.px)
this.axisLeft.isGranularityEnabled = true
this.axisLeft.granularity = 1.0f
// this.xAxis.axisLineWidth = ChartAppearance.lineWidth
// this.xAxis.enableGridDashedLine(3.0f, 5.0f, 1.0f)
//
// this.xAxis.labelTextColor = ChartAppearance.defaultColor
// this.xAxis.labelFont = Fonts.graphAxis
// this.xAxis.labelCount = 4
// this.xAxis.labelPosition = .bottom
//
// this.xAxis.drawLabelsEnabled = true
// this.xAxis.drawGridLinesEnabled = true
// this.xAxis.granularity = 1.0
// this.xAxis.granularityEnabled = true
// this.xAxis.enabled = true
//
// // Y Axis
// this.leftAxis.drawAxisLineEnabled = false
// this.leftAxis.drawGridLinesEnabled = true
// this.leftAxis.gridLineDashLengths = [3.0, 5.0]
//
// this.leftAxis.drawZeroLineEnabled = true
// this.leftAxis.zeroLineWidth = ChartAppearance.lineWidth
// this.leftAxis.zeroLineColor = ChartAppearance.defaultColor
//
// this.leftAxis.granularityEnabled = true
// this.leftAxis.granularity = 1.0
//
// this.leftAxis.labelTextColor = ChartAppearance.defaultColor
// this.leftAxis.labelFont = Fonts.graphAxis
// this.leftAxis.labelCount = small ? 1 : 7 // @todo not great if interval is [0..2] for number of records as we get decimals
//
this.axisLeft.textColor = ContextCompat.getColor(context, R.color.chart_default)
this.axisLeft.typeface = Typeface.DEFAULT
this.axisLeft.labelCount =
if (small) 1 else 7 // @todo not great if interval is [0..2] for number of records as we get decimals
this.axisRight.isEnabled = false
this.legend.isEnabled = false
// @todo
// if timeYAxis {
// this.leftAxis.valueFormatter = HourValueFormatter()
// this.axisLeft.valueFormatter = HourValueFormatter()
// } else {
// this.leftAxis.valueFormatter = LargeNumberFormatter()
// this.axisLeft.valueFormatter = LargeNumberFormatter()
// }
//
// this.rightAxis.enabled = false
//
// this.legend.enabled = false
}
}
}

@ -13,6 +13,7 @@ import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.row_history_session.view.*
import kotlinx.android.synthetic.main.row_transaction.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.StatRepresentable
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.realm.Transaction
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
@ -232,11 +233,13 @@ enum class RowViewType(private var layoutRes: Int) {
itemView.findViewById<AppCompatTextView?>(R.id.value)?.let { view ->
adapter.dataSource.contentDescriptorForRow(row)?.textFormat?.let {
view.setTextFormat(it, itemView.context)
// view.text = it.text
// view.setTextColor(it.getColor(itemView.context))
}
}
if (row is StatRepresentable) {
itemView.findViewById<AppCompatImageView?>(R.id.nextArrow)?.isVisible = row.stat.hasEvolutionGraph
}
// Listener
val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row)

@ -1,10 +0,0 @@
package net.pokeranalytics.android.ui.view.fields
import android.content.Context
import androidx.appcompat.widget.AppCompatTextView
import net.pokeranalytics.android.calculus.TextFormat
fun AppCompatTextView.setTextFormat(textFormat: TextFormat, context: Context) {
this.setTextColor(textFormat.getColor(context))
this.text = textFormat.text
}

@ -38,5 +38,6 @@
<color name="purple">#8e35c8</color>
<color name="chart_default">#5c7258</color>
<color name="chart_highlight_indicator">#f8ffe5</color>
</resources>

Loading…
Cancel
Save