Merge remote-tracking branch 'origin/dev' into dev

feature/top10
Razmig Sarkissian 7 years ago
commit b093e83151
  1. 3
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 28
      app/src/main/java/net/pokeranalytics/android/model/migrations/Patcher.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  5. 1
      app/src/main/java/net/pokeranalytics/android/model/realm/SessionSet.kt
  6. 7
      app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt
  7. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollDataFragment.kt
  8. 32
      app/src/main/java/net/pokeranalytics/android/ui/fragment/GraphFragment.kt
  9. 3
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  10. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
  11. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt
  12. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  13. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt
  14. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt

@ -9,6 +9,7 @@ import io.realm.RealmConfiguration
import io.realm.kotlin.where
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import net.pokeranalytics.android.model.migrations.Patcher
import net.pokeranalytics.android.model.migrations.PokerAnalyticsMigration
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.model.utils.Seed
@ -53,6 +54,8 @@ class PokerAnalyticsApplication : Application() {
Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}")
//this.createFakeSessions()
}
Patcher.patchBreaks()
}
/**

@ -0,0 +1,28 @@
package net.pokeranalytics.android.model.migrations
import io.realm.Realm
import net.pokeranalytics.android.model.realm.SessionSet
class Patcher {
companion object {
fun patchBreaks() {
val realm = Realm.getDefaultInstance()
val sets = realm.where(SessionSet::class.java).findAll()
realm.executeTransaction {
sets.forEach {
it.computeStats()
}
}
realm.close()
}
}
}

@ -101,11 +101,7 @@ open class Bankroll() : RealmObject(), NameManageable, StaticRowRepresentableDat
this.currency?.code = value as String?
}
BankrollRow.RATE -> {
value?.let { rate ->
this.currency?.rate = (rate as String).toDouble()
} ?: run {
this.currency?.rate = null
}
this.currency?.rate = value as Double?
}
}
}

@ -779,7 +779,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
cgBigBlind = null
}
SessionRow.BREAK_TIME -> {
this.breakDuration = if (value != null) (value as String).toLong() * 60 * 1000 else 0
this.breakDuration = (value as Double? ?: 0.0).toLong() * 60 * 1000
}
SessionRow.BUY_IN -> {
val localResult = if (this.result != null) this.result as Result else realm.createObject(Result::class.java)

@ -63,6 +63,7 @@ open class SessionSet() : RealmObject(), Timed, Filterable {
this.ratedNet = this.sessions?.sumByDouble { it.computableResult?.ratedNet ?: 0.0 } ?: 0.0
this.estimatedHands = this.sessions?.sumByDouble { it.estimatedHands } ?: 0.0
this.bbNet = this.sessions?.sumByDouble { it.bbNet } ?: 0.0
this.breakDuration = this.sessions?.max("breakDuration")?.toLong() ?: 0L
}
/**

@ -3,9 +3,8 @@ package net.pokeranalytics.android.ui.activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.github.mikephil.charting.data.Entry
import kotlinx.android.synthetic.main.activity_graph.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.Report
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.fragment.GraphParameters
@ -26,8 +25,8 @@ class StatisticDetailsActivity : PokerAnalyticsActivity() {
/**
* Default constructor
*/
fun newInstance(context: Context, stat: Stat, entries: List<Entry>) {
parameters = GraphParameters(stat, entries)
fun newInstance(context: Context, stat: Stat, report: Report) {
parameters = GraphParameters(stat, report)
val intent = Intent(context, StatisticDetailsActivity::class.java)
context.startActivity(intent)
}

@ -114,8 +114,8 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.bankroll.name))
BankrollRow.RATE -> {
val rate = this.bankroll.currency?.rate ?: 1.0
row.editingDescriptors(mapOf("defaultValue" to rate.toRate()))
val rate = this.bankroll.currency?.rate
row.editingDescriptors(mapOf("defaultValue" to rate))
}
else -> null
}
@ -204,7 +204,7 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
override fun onResponse(call: Call<Map<String, CurrencyConverterValue>>, response: Response<Map<String, CurrencyConverterValue>>) {
response.body()?.let {
it[currenciesConverterValue]?.value?.let { rate ->
onRowValueChanged(rate.toString(), BankrollRow.RATE)
onRowValueChanged(rate, BankrollRow.RATE)
}
}

@ -15,22 +15,18 @@ import com.google.android.material.chip.Chip
import com.google.android.material.chip.ChipGroup
import kotlinx.android.synthetic.main.fragment_evograph.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.GraphType
import net.pokeranalytics.android.calculus.ObjectIdentifier
import net.pokeranalytics.android.calculus.Stat
import net.pokeranalytics.android.calculus.*
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.extensions.ChipGroupExtension
import net.pokeranalytics.android.ui.extensions.px
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.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>) {
var stat: Stat = stat
var entries: List<Entry> = entries
class GraphParameters(var stat: Stat, var report: Report) {
}
class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
@ -38,18 +34,27 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
private lateinit var parentActivity: PokerAnalyticsActivity
private var stat: Stat = Stat.NETRESULT
private var reports: Map<AggregationType, Report> = hashMapOf()
private var entries: List<Entry> = ArrayList()
lateinit var legendView: LegendView
lateinit var chartView: BarLineChartBase<*>
private var aggregationTypes: List<AggregationType> = listOf()
companion object {
}
fun setData(stat: Stat, entries: List<Entry>) {
fun setData(stat: Stat, report: Report) {
this.stat = stat
this.entries = entries
this.aggregationTypes = stat.aggregationTypes
// this.report = report
report.results.firstOrNull()?.defaultStatEntries(stat)?.let {
this.entries = it
}
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -98,7 +103,7 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chartView.highlightValue((this.entries.size - 1).toFloat(), 0)
this.stat.aggregationTypes.forEach { type ->
this.aggregationTypes.forEach { type ->
val chip = Chip(requireContext())
chip.id = type.ordinal
chip.text = requireContext().getString(type.resId)
@ -112,7 +117,8 @@ class GraphFragment : PokerAnalyticsFragment(), OnChartValueSelectedListener {
this.chipGroup.setOnCheckedChangeListener(object : ChipGroupExtension.SingleSelectionOnCheckedListener() {
override fun onCheckedChanged(group: ChipGroup, checkedId: Int) {
super.onCheckedChanged(group, checkedId)
toast("Show: ${stat.aggregationTypes[group.getChildAt(checkedId).id].name}")
val aggregationType = aggregationTypes[checkedId]
// toast("Show: ${this.aggregationTypes[group.getChildAt(checkedId).id].name}")
}
})

@ -115,8 +115,7 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate {
sessionAdapter.refreshRow(row)
when (row) {
SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT, SessionRow.BUY_IN, SessionRow.TIPS,
SessionRow.START_DATE, SessionRow.END_DATE, SessionRow.BANKROLL -> updateSessionUI()
SessionRow.BREAK_TIME -> this.sessionAdapter.notifyDataSetChanged()
SessionRow.START_DATE, SessionRow.END_DATE, SessionRow.BANKROLL, SessionRow.BREAK_TIME -> updateSessionUI()
}
}

@ -58,7 +58,6 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
private lateinit var settingsAdapterRow: RowRepresentableAdapter
private lateinit var parentActivity: PokerAnalyticsActivity
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_settings, container, false)
}

@ -61,7 +61,7 @@ class StatisticDetailsFragment : PokerAnalyticsFragment() {
fragmentTransaction.commit()
StatisticDetailsActivity.parameters?.let {
fragment.setData(it.stat, it.entries)
fragment.setData(it.stat, it.report)
StatisticDetailsActivity.parameters = null
} ?: run {
throw Exception("Missing graph parameters")

@ -225,6 +225,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
val realm = Realm.getDefaultInstance()
val options = Calculator.Options()
options.evolutionValues = Calculator.Options.EvolutionValues.STANDARD
options.displayedStats = listOf(stat)
report = Calculator.computeGroups(realm, listOf(computableGroup), options)
realm.close()
@ -236,9 +237,7 @@ class StatsFragment : SessionObserverFragment(), StaticRowRepresentableDataSourc
test.await()
if (!isDetached) {
report.results.firstOrNull()?.defaultStatEntries(stat)?.let { entries ->
StatisticDetailsActivity.newInstance(requireContext(), stat, entries)
}
StatisticDetailsActivity.newInstance(requireContext(), stat, report)
}
}

@ -63,6 +63,7 @@ class BottomSheetNumericTextFragment : BottomSheetFragment() {
data[0].defaultValue?.let {
if (it is Double || it is Long) {
val formatter = NumberFormat.getNumberInstance()
formatter.maximumFractionDigits = 6
formatter.isGroupingUsed = false
editText1.setText(formatter.format(it))
} else {

@ -40,14 +40,14 @@ enum class BankrollRow : RowRepresentable, DefaultEditDataSource {
return when (this) {
LIVE -> BottomSheetType.NONE
CURRENCY -> BottomSheetType.NONE
RATE -> BottomSheetType.EDIT_TEXT
RATE -> BottomSheetType.NUMERIC_TEXT
REFRESH_RATE -> BottomSheetType.NONE
}
}
override fun editingDescriptors(map: Map<String, Any?>): ArrayList<RowRepresentableEditDescriptor>? {
return when (this) {
BankrollRow.RATE -> {
RATE -> {
val defaultValue : Any? by map
arrayListOf(
RowRepresentableEditDescriptor(defaultValue, R.string.rate, InputType.TYPE_CLASS_NUMBER

Loading…
Cancel
Save