parent
546e7a5777
commit
f48683d683
@ -0,0 +1,71 @@ |
||||
package net.pokeranalytics.android.model.interfaces |
||||
|
||||
import net.pokeranalytics.android.model.realm.Bankroll |
||||
import net.pokeranalytics.android.util.BLIND_SEPARATOR |
||||
import net.pokeranalytics.android.util.UserDefaults |
||||
import net.pokeranalytics.android.util.extensions.formatted |
||||
import java.text.NumberFormat |
||||
import java.text.ParseException |
||||
|
||||
interface StakesHolder { |
||||
|
||||
companion object { |
||||
|
||||
private const val cbSeparator = ";" |
||||
private const val cbAnte = "A=" |
||||
private const val cbBlinds = "B=" |
||||
private const val cbCode = "C=" |
||||
|
||||
} |
||||
|
||||
val ante: Double? |
||||
val blinds: String? |
||||
val biggestBet: Double? |
||||
val stakes: String? |
||||
|
||||
val bankroll: Bankroll? |
||||
|
||||
fun setHolderStakes(stakes: String?) |
||||
fun setHolderBiggestBet(biggestBet: Double?) |
||||
|
||||
val blindValues: List<Double> |
||||
get() { |
||||
this.blinds?.let { blinds -> |
||||
val blindsSplit = blinds.split(BLIND_SEPARATOR) |
||||
return blindsSplit.mapNotNull { |
||||
try { |
||||
NumberFormat.getInstance().parse(it)?.toDouble() |
||||
} catch (e: ParseException) { |
||||
null |
||||
} |
||||
} |
||||
} |
||||
return listOf() |
||||
} |
||||
|
||||
fun generateStakes() { |
||||
|
||||
if (this.ante == null && this.ante == null) { |
||||
setHolderStakes(null) |
||||
return |
||||
} |
||||
|
||||
val components = arrayListOf<String>() |
||||
|
||||
this.blinds?.let { components.add("${cbBlinds}${it}") } |
||||
this.ante?.let { components.add("${cbAnte}${it.formatted}") } |
||||
|
||||
val code = this.bankroll?.currency?.code ?: UserDefaults.currency.currencyCode |
||||
components.add("${cbCode}${code}") |
||||
|
||||
setHolderStakes(components.joinToString(cbSeparator)) |
||||
} |
||||
|
||||
fun defineHighestBet() { |
||||
val bets = arrayListOf<Double>() |
||||
this.ante?.let { bets.add(it) } |
||||
bets.addAll(this.blindValues) |
||||
setHolderBiggestBet(bets.maxOrNull()) |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue