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

feature/top10
Aurelien Hubert 7 years ago
commit 8c8de475da
  1. 2
      app/build.gradle
  2. 1
      app/src/main/java/net/pokeranalytics/android/model/migrations/PokerAnalyticsMigration.kt
  3. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  4. 17
      app/src/main/java/net/pokeranalytics/android/model/realm/Result.kt
  5. 50
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 7
      app/src/main/java/net/pokeranalytics/android/ui/activity/StatisticDetailsActivity.kt
  7. 21
      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. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
  10. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatisticDetailsFragment.kt
  11. 5
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  12. 85
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetNumericTextFragment.kt
  13. 3
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetType.kt
  14. 4
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/BankrollRow.kt
  15. 130
      app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SessionRow.kt

@ -28,7 +28,7 @@ android {
applicationId "net.pokeranalytics.android"
minSdkVersion 23
targetSdkVersion 28
versionCode 8
versionCode 16
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

@ -40,6 +40,7 @@ class PokerAnalyticsMigration : RealmMigration {
it.renameField("filterElements", "filterConditions")
}
schema.get("SessionSet")?.let {
it.addField("id", String::class.java).setRequired("id", true)
it.addPrimaryKey("id")
}
currentVersion++

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

@ -80,13 +80,16 @@ open class Result : RealmObject() {
private fun computeNet() {
val transactionsSum = transactions.sumByDouble { it.amount }
this.netResult?.let {
this.net = it + transactionsSum
} ?: run {
val buyin = this.buyin ?: 0.0
val cashOut = this.cashout ?: 0.0
this.net = cashOut - buyin + transactionsSum
}
val isLive = this.session?.bankroll?.live ?: true
if (isLive) {
val buyin = this.buyin ?: 0.0
val cashOut = this.cashout ?: 0.0
this.net = cashOut - buyin + transactionsSum
} else {
val netResult = this.netResult ?: 0.0
this.net = netResult + transactionsSum
}
// Precompute results
this.session?.computeStats()

@ -650,7 +650,8 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
SessionRow.BLINDS -> getFormattedBlinds()
SessionRow.BREAK_TIME -> if (this.breakDuration > 0.0) this.breakDuration.toMinutes() else NULL_TEXT
SessionRow.BUY_IN -> this.result?.buyin?.toCurrency(currency) ?: NULL_TEXT
SessionRow.CASHED_OUT, SessionRow.PRIZE, SessionRow.NET_RESULT -> this.result?.cashout?.toCurrency(currency) ?: NULL_TEXT
SessionRow.CASHED_OUT, SessionRow.PRIZE -> this.result?.cashout?.toCurrency(currency) ?: NULL_TEXT
SessionRow.NET_RESULT -> this.result?.netResult?.toCurrency(currency) ?: NULL_TEXT
SessionRow.COMMENT -> if (this.comment.isNotEmpty()) this.comment else NULL_TEXT
SessionRow.END_DATE -> this.endDate?.shortDateTime() ?: NULL_TEXT
SessionRow.GAME -> getFormattedGame()
@ -687,7 +688,7 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
override fun actionIconForRow(row: RowRepresentable): Int? {
return when (row) {
SessionRow.START_DATE, SessionRow.END_DATE -> {
net.pokeranalytics.android.R.drawable.ic_close
R.drawable.ic_close
}
else -> null
}
@ -722,14 +723,14 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
SessionRow.BUY_IN -> row.editingDescriptors(mapOf(
"bb" to cgBigBlind,
"fee" to this.tournamentEntryFee,
"ratedBuyin" to ratedBuyin
"ratedBuyin" to result?.buyin
))
SessionRow.BREAK_TIME -> row.editingDescriptors(mapOf())
SessionRow.CASHED_OUT, SessionRow.PRIZE -> row.editingDescriptors(mapOf(
"defaultValue" to result?.cashout?.round()
"defaultValue" to result?.cashout
))
SessionRow.NET_RESULT -> row.editingDescriptors(mapOf(
"defaultValue" to result?.netResult?.round()
"defaultValue" to result?.netResult
))
SessionRow.COMMENT -> row.editingDescriptors(mapOf(
"defaultValue" to this.comment))
@ -789,24 +790,19 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
SessionRow.CASHED_OUT, SessionRow.PRIZE -> {
val localResult = if (this.result != null) this.result as Result else realm.createObject(Result::class.java)
if (value == null) {
localResult.cashout = null
} else {
localResult.cashout = (value as String).toDouble()
}
localResult.cashout = value as Double?
this.result = localResult
}
SessionRow.NET_RESULT -> {
this.result?.let { result ->
result.netResult = (value as String).toDouble()
result.netResult = value as Double?
}
}
SessionRow.COMMENT -> comment = value as String? ?: ""
SessionRow.END_DATE -> if (value is Date?) {
this.endDate = value
}
SessionRow.GAME -> {
if (value is ArrayList<*>) {
@ -825,15 +821,26 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
} else if (value == null) {
limit = null
game = null
}
}
SessionRow.INITIAL_BUY_IN -> tournamentEntryFee = if (value == null) null else (value as String).toDouble()
SessionRow.INITIAL_BUY_IN -> {
this.tournamentEntryFee = (value as Double?)
}
SessionRow.LOCATION -> location = value as Location?
SessionRow.PLAYERS -> tournamentNumberOfPlayers = if (value != null) (value as String).toInt() else null
SessionRow.PLAYERS -> {
if (value is Double) {
this.tournamentNumberOfPlayers = value.toInt()
} else {
this.tournamentNumberOfPlayers = null
}
}
SessionRow.POSITION -> {
val localResult = if (result != null) result as Result else realm.createObject(Result::class.java)
localResult.tournamentFinalPosition = if (value == null) null else (value as String).toInt()
if (value is Double) {
localResult.tournamentFinalPosition = value.toInt()
} else {
localResult.tournamentFinalPosition = null
}
result = localResult
}
SessionRow.START_DATE -> if (value is Date) {
@ -847,9 +854,14 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
}
SessionRow.TOURNAMENT_NAME -> tournamentName = value as TournamentName?
SessionRow.TOURNAMENT_TYPE -> tournamentType = value as Int?
SessionRow.TOURNAMENT_FEATURE -> value?.let {
tournamentFeatures = RealmList()
tournamentFeatures.addAll((it as ArrayList<TournamentFeature>))
SessionRow.TOURNAMENT_FEATURE -> {
value?.let {
tournamentFeatures = RealmList()
tournamentFeatures.addAll((it as ArrayList<TournamentFeature>))
} ?: run {
tournamentFeatures.removeAll(this.tournamentFeatures)
}
}
}
}

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

@ -88,18 +88,15 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
return when (row) {
SimpleRow.NAME -> if (bankroll.name.isNotEmpty()) bankroll.name else NULL_TEXT
BankrollRow.CURRENCY -> {
bankroll.currency?.let {
Currency.getInstance(it.code).currencyCode
bankroll.currency?.code?.let { code ->
Currency.getInstance(code).currencyCode
} ?: run {
NULL_TEXT
}
}
BankrollRow.RATE -> {
this.bankroll.currency?.rate?.let { rate ->
rate.toRate()
} ?: run {
1.0.toRate()
}
val rate = this.bankroll.currency?.rate ?: 1.0
rate.toRate()
}
else -> super.stringForRow(row)
}
@ -117,12 +114,8 @@ class BankrollDataFragment : EditableDataFragment(), StaticRowRepresentableDataS
return when (row) {
SimpleRow.NAME -> row.editingDescriptors(mapOf("defaultValue" to this.bankroll.name))
BankrollRow.RATE -> {
this.bankroll.currency?.rate?.let { rate ->
row.editingDescriptors(mapOf("defaultValue" to rate.toRate()))
} ?: run {
row.editingDescriptors(mapOf())
}
val rate = this.bankroll.currency?.rate
row.editingDescriptors(mapOf("defaultValue" to rate))
}
else -> null
}
@ -211,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}")
}
})

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

@ -0,0 +1,85 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle
import android.text.InputType
import android.view.LayoutInflater
import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.core.widget.addTextChangedListener
import kotlinx.android.synthetic.main.bottom_sheet_edit_text.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.RowRepresentableEditDescriptorException
import java.text.NumberFormat
class BottomSheetNumericTextFragment : BottomSheetFragment() {
private var value: Double? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
}
override fun onStart() {
super.onStart()
editText1.requestFocus()
}
override fun getValue(): Any? {
return this.value
}
/**
* Init data
*/
private fun initData() {
}
/**
* Init UI
*/
private fun initUI() {
val data = getData()?:throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor not found")
if (data.size != 1) {
throw RowRepresentableEditDescriptorException("RowRepresentableEditDescriptor inconsistency")
}
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_edit_text, view?.bottomSheetContainer, true)
data[0].hint?.let { editText1.hint = getString(it) }
editText1.inputType = data[0].inputType ?: InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES
editText1.addTextChangedListener {
this.value = try {
editText1.text.toString().toDouble()
} catch (e: Exception) {
null
}
}
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 {
editText1.setText(it.toString())
}
}
editText1.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
delegate.onRowValueChanged(getValue(), row)
dismiss()
true
} else {
false
}
}
}
}

@ -11,6 +11,7 @@ enum class BottomSheetType {
EDIT_TEXT { override fun newInstance() = BottomSheetEditTextFragment()},
EDIT_TEXT_MULTI_LINES { override fun newInstance() = BottomSheetEditTextMultiLinesFragment()},
DOUBLE_EDIT_TEXT { override fun newInstance() = BottomSheetDoubleEditTextFragment()},
NUMERIC_TEXT { override fun newInstance() = BottomSheetNumericTextFragment()},
SUM { override fun newInstance() = BottomSheetSumFragment()};
abstract fun newInstance(): BottomSheetFragment
@ -26,7 +27,7 @@ enum class BottomSheetType {
val addRequired : Boolean
get() = when (this) {
EDIT_TEXT, DOUBLE_EDIT_TEXT, EDIT_TEXT_MULTI_LINES, GRID, LIST_STATIC, SUM -> false
EDIT_TEXT, NUMERIC_TEXT, DOUBLE_EDIT_TEXT, EDIT_TEXT_MULTI_LINES, GRID, LIST_STATIC, SUM -> false
else -> true
}
}

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

@ -49,17 +49,39 @@ enum class SessionRow : RowRepresentable {
return when (session.getState()) {
SessionState.PENDING, SessionState.PLANNED -> {
arrayListOf(
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, TOURNAMENT_NAME, TOURNAMENT_FEATURE,
START_DATE, END_DATE
GAME,
INITIAL_BUY_IN,
LOCATION,
BANKROLL,
TABLE_SIZE,
TOURNAMENT_TYPE,
TOURNAMENT_NAME,
TOURNAMENT_FEATURE,
START_DATE,
END_DATE
)
}
SessionState.STARTED, SessionState.PAUSED, SessionState.FINISHED -> {
arrayListOf(
PRIZE, BUY_IN, POSITION, PLAYERS, TIPS,
PRIZE,
BUY_IN,
POSITION,
PLAYERS,
TIPS,
SeparatorRowRepresentable(),
GAME, INITIAL_BUY_IN, LOCATION, BANKROLL, TABLE_SIZE, TOURNAMENT_TYPE, TOURNAMENT_NAME, TOURNAMENT_FEATURE,
GAME,
INITIAL_BUY_IN,
LOCATION,
BANKROLL,
TABLE_SIZE,
TOURNAMENT_TYPE,
TOURNAMENT_NAME,
TOURNAMENT_FEATURE,
SeparatorRowRepresentable(),
START_DATE, END_DATE, BREAK_TIME, COMMENT
START_DATE,
END_DATE,
BREAK_TIME,
COMMENT
)
}
}
@ -73,15 +95,33 @@ enum class SessionRow : RowRepresentable {
val liveBankroll = session.bankroll?.live ?: false
return if (liveBankroll) {
arrayListOf(
CASHED_OUT, BUY_IN, TIPS,
CASHED_OUT,
BUY_IN,
TIPS,
SeparatorRowRepresentable(),
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT
GAME,
BLINDS,
LOCATION,
BANKROLL,
TABLE_SIZE,
START_DATE,
END_DATE,
BREAK_TIME,
COMMENT
)
} else {
arrayListOf(
NET_RESULT,
SeparatorRowRepresentable(),
GAME, BLINDS, LOCATION, BANKROLL, TABLE_SIZE, START_DATE, END_DATE, BREAK_TIME, COMMENT
GAME,
BLINDS,
LOCATION,
BANKROLL,
TABLE_SIZE,
START_DATE,
END_DATE,
BREAK_TIME,
COMMENT
)
}
}
@ -131,7 +171,7 @@ enum class SessionRow : RowRepresentable {
override val bottomSheetType: BottomSheetType
get() {
return when (this) {
NET_RESULT, CASHED_OUT, INITIAL_BUY_IN, BREAK_TIME, POSITION, PLAYERS, PRIZE -> BottomSheetType.EDIT_TEXT
NET_RESULT, CASHED_OUT, INITIAL_BUY_IN, BREAK_TIME, POSITION, PLAYERS, PRIZE -> BottomSheetType.NUMERIC_TEXT
BUY_IN, TIPS -> BottomSheetType.SUM
BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT
GAME -> BottomSheetType.LIST_GAME
@ -151,10 +191,15 @@ enum class SessionRow : RowRepresentable {
val sb: String? by map
val bb: String? by map
arrayListOf(
RowRepresentableEditDescriptor(sb, R.string.smallblind, InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL),
RowRepresentableEditDescriptor(bb, R.string.bigblind, InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL))
RowRepresentableEditDescriptor(
sb, R.string.smallblind, InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL
),
RowRepresentableEditDescriptor(
bb, R.string.bigblind, InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL
)
)
}
BUY_IN -> {
val bb: Double? by map
@ -162,11 +207,11 @@ enum class SessionRow : RowRepresentable {
val ratedBuyin: Double? by map
val data = arrayListOf<RowRepresentableEditDescriptor>()
if (bb != null) {
data.add(RowRepresentableEditDescriptor(100.0 * (bb?: 0.0)))
data.add(RowRepresentableEditDescriptor(200.0 * (bb?: 0.0)))
data.add(RowRepresentableEditDescriptor(100.0 * (bb ?: 0.0)))
data.add(RowRepresentableEditDescriptor(200.0 * (bb ?: 0.0)))
} else if (fee != null) {
data.add(RowRepresentableEditDescriptor((fee?: 0.0) * 1.0))
data.add(RowRepresentableEditDescriptor((fee?: 0.0) * 2.0))
data.add(RowRepresentableEditDescriptor((fee ?: 0.0) * 1.0))
data.add(RowRepresentableEditDescriptor((fee ?: 0.0) * 2.0))
} else {
data.add(RowRepresentableEditDescriptor(0))
data.add(RowRepresentableEditDescriptor(0))
@ -186,17 +231,18 @@ enum class SessionRow : RowRepresentable {
data
}
CASHED_OUT, PRIZE, NET_RESULT -> {
val defaultValue: String? by map
val defaultValue: Double? by map
arrayListOf(
RowRepresentableEditDescriptor(
defaultValue,
inputType = InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL
or InputType.TYPE_NUMBER_FLAG_SIGNED
))
RowRepresentableEditDescriptor(
defaultValue,
inputType = InputType.TYPE_CLASS_NUMBER
or InputType.TYPE_NUMBER_FLAG_DECIMAL
or InputType.TYPE_NUMBER_FLAG_SIGNED
)
)
}
COMMENT -> {
val defaultValue : String? by map
val defaultValue: String? by map
arrayListOf(RowRepresentableEditDescriptor(defaultValue, R.string.comment))
}
BREAK_TIME -> {
@ -207,22 +253,23 @@ enum class SessionRow : RowRepresentable {
)
}
GAME -> {
val limit : Int? by map
val defaultValue : Any? by map
val data : RealmResults<*>? by map
val limit: Int? by map
val defaultValue: Any? by map
val data: RealmResults<*>? by map
arrayListOf(
RowRepresentableEditDescriptor(limit),
RowRepresentableEditDescriptor(defaultValue, data = data))
RowRepresentableEditDescriptor(defaultValue, data = data)
)
}
INITIAL_BUY_IN -> {
val defaultValue : Double? by map
val defaultValue: Double? by map
arrayListOf(
RowRepresentableEditDescriptor(defaultValue?.round(), inputType = InputType.TYPE_CLASS_NUMBER)
)
}
BANKROLL, LOCATION, TOURNAMENT_FEATURE, TOURNAMENT_NAME -> {
val defaultValue : Any? by map
val data : RealmResults<*>? by map
val defaultValue: Any? by map
val data: RealmResults<*>? by map
arrayListOf(
RowRepresentableEditDescriptor(defaultValue, data = data)
)
@ -237,7 +284,7 @@ enum class SessionRow : RowRepresentable {
)
}
POSITION -> {
val defaultValue : Int? by map
val defaultValue: Int? by map
arrayListOf(
RowRepresentableEditDescriptor(
defaultValue,
@ -246,7 +293,7 @@ enum class SessionRow : RowRepresentable {
)
}
TABLE_SIZE -> {
val defaultValue : Int? by map
val defaultValue: Int? by map
arrayListOf(RowRepresentableEditDescriptor(defaultValue))
}
TIPS -> {
@ -256,19 +303,20 @@ enum class SessionRow : RowRepresentable {
// Disable the buttons with value = 0, add current value & set the 2 edit texts
arrayListOf(
RowRepresentableEditDescriptor(sb?: 0.0),
RowRepresentableEditDescriptor(bb?: 0.0),
RowRepresentableEditDescriptor(tips?: 0.0),
RowRepresentableEditDescriptor(sb ?: 0.0),
RowRepresentableEditDescriptor(bb ?: 0.0),
RowRepresentableEditDescriptor(tips ?: 0.0),
RowRepresentableEditDescriptor("", inputType = InputType.TYPE_CLASS_NUMBER),
RowRepresentableEditDescriptor("", inputType = InputType.TYPE_CLASS_NUMBER)
)
}
TOURNAMENT_TYPE -> {
val defaultValue : Any? by map
val defaultValue: Any? by map
arrayListOf(
RowRepresentableEditDescriptor(defaultValue, staticData = TournamentType.values().map {
it
}))
RowRepresentableEditDescriptor(defaultValue, staticData = TournamentType.values().map {
it
})
)
}
else -> null
}

Loading…
Cancel
Save