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