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

feature/top10
Laurent 7 years ago
commit 96c1c3316c
  1. 37
      app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt
  2. 27
      app/src/main/java/net/pokeranalytics/android/model/LiveData.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  4. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  5. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  6. 14
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  7. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/TimeFrame.kt
  8. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
  9. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
  10. 50
      app/src/main/java/net/pokeranalytics/android/ui/adapter/LimitTypesAdapter.kt
  11. 15
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  12. 8
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  13. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleEditTextFragment.kt
  14. 62
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetDoubleListFragment.kt
  15. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt
  16. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt
  17. 1
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  18. 103
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt
  19. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetSumFragment.kt
  20. 10
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt
  21. 3
      app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt
  22. 19
      app/src/main/res/layout/bottom_sheet_double_list.xml
  23. 25
      app/src/main/res/layout/bottom_sheet_game_list.xml
  24. 44
      app/src/main/res/values/array_blind.xml
  25. 17
      app/src/main/res/values/array_limit.xml
  26. 21
      app/src/main/res/values/array_variant.xml
  27. 3
      app/src/main/res/values/strings.xml

@ -4,9 +4,12 @@ import android.app.Application
import io.realm.Realm
import io.realm.RealmConfiguration
import io.realm.RealmResults
import io.realm.kotlin.where
import net.pokeranalytics.android.model.realm.Game
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.util.PokerAnalyticsLogs
import timber.log.Timber
import java.util.*
class PokerAnalyticsApplication : Application() {
@ -42,10 +45,11 @@ class PokerAnalyticsApplication: Application() {
// Add observer on session time frame changes
this.sessions = realm.where(Session::class.java).findAll() // monitor session deletions
this.sessions?.addChangeListener { t, changeSet ->
val deletedSessions = realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll()
/*
val deletedSessions =
realm.where(Session::class.java).`in`("id", changeSet.deletions.toTypedArray()).findAll()
deletedSessions.forEach { it.cleanup() }
*/
}
if (BuildConfig.DEBUG) {
@ -55,6 +59,33 @@ class PokerAnalyticsApplication: Application() {
//Fabric.with(this, Crashlytics())
}
if (BuildConfig.DEBUG) {
createDefaultData()
}
}
/**
* Create default data
*/
private fun createDefaultData() {
val gamesName = resources.getStringArray(R.array.game_name)
val gamesShortName = resources.getStringArray(R.array.game_short_name)
val realm = Realm.getDefaultInstance()
if (realm.where<Game>().findAll().isEmpty()) {
realm.executeTransaction {
for ((index, name) in gamesName.withIndex()) {
val game = Game()
game.id = UUID.randomUUID().toString()
game.name = name
game.shortName = gamesShortName[index]
realm.copyToRealmOrUpdate(game)
}
}
}
}
}

@ -6,6 +6,7 @@ import io.realm.RealmResults
import io.realm.Sort
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource
import net.pokeranalytics.android.ui.view.Localizable
/**
@ -63,6 +64,19 @@ enum class LiveData : Localizable {
}
}
fun deleteData(realm:Realm, data:LiveDataDataSource) {
realm.where(this.relatedEntity).equalTo("id", data.primaryKey).findAll().deleteAllFromRealm()
}
fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject {
val proxyItem: RealmObject? = this.getData(realm, primaryKey)
proxyItem?.let {
return proxyItem
} ?: run {
return this.newEntity()
}
}
fun newEntity(): RealmObject {
return when (this) {
BANKROLL -> Bankroll()
@ -84,19 +98,6 @@ enum class LiveData : Localizable {
return proxyItem
}
fun updateOrCreate(realm: Realm, primaryKey: String?): RealmObject {
val proxyItem: RealmObject? = this.getData(realm, primaryKey)
proxyItem?.let {
return realm.copyFromRealm(it)
} ?: run {
return this.newEntity()
/* realm.beginTransaction()
val t = realm.createObject(this.relatedEntity, UUID.randomUUID().toString())
realm.commitTransaction()
return realm.copyFromRealm(t)*/
}
}
override val resId: Int?
get() {
return when (this) {

@ -81,4 +81,8 @@ open class Bankroll(name: String = "") : RealmObject(), RowRepresentableDataSour
SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -59,9 +59,6 @@ open class Game : RealmObject(), RowRepresentableDataSource, LiveDataDataSource,
}
override fun isValidForSave(): Boolean {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
return this.name.isNotEmpty()
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -12,7 +13,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import java.util.*
open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -57,4 +58,7 @@ open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSou
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -143,8 +143,8 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
* TODO: Cascade delete?
*/
fun delete() {
realm.executeTransaction {
cleanup()
realm.executeTransaction {
deleteFromRealm()
}
}
@ -188,7 +188,6 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
return gameTitle
}
companion object {
fun newInstance(): Session {
var session: Session = Session()
@ -299,9 +298,10 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
data.add(BottomSheetData("", inputType = InputType.TYPE_CLASS_NUMBER))
data.add(BottomSheetData("", inputType = InputType.TYPE_CLASS_NUMBER))
}
SessionRow.TABLE_SIZE -> {}
SessionRow.TABLE_SIZE -> {data.add(BottomSheetData(tableSize))}
SessionRow.GAME -> {
// Add current game & games list
data.add(BottomSheetData(limit))
data.add(BottomSheetData(game, data = LiveData.GAME.items(realm)))
}
SessionRow.LOCATION -> {
@ -351,13 +351,17 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
}
}
//TODO: Update
SessionRow.START_DATE -> if (value is Date) {
SessionRow.START_DATE -> if (value is Date?) {
if (value == null) {
timeFrame = null
} else {
val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
timeFrameToUpdate.setDate(value, null)
timeFrame = timeFrameToUpdate
}
}
//TODO: Update
SessionRow.END_DATE -> if (value is Date) {
SessionRow.END_DATE -> if (value is Date?) {
val timeFrameToUpdate = if (timeFrame != null) timeFrame as TimeFrame else realm.createObject(TimeFrame::class.java)
timeFrameToUpdate.setDate(null, value)
timeFrame = timeFrameToUpdate

@ -90,7 +90,7 @@ open class TimeFrame : RealmObject() {
// Timber.d("this> sd = : ${this.startDate}, ed = ${this.endDate}")
if (this.endDate == null) {
query.greaterThan("timeFrame.startDate", this.startDate.time).or().greaterThan("timeFrame.endDate", this.startDate.time)
query.greaterThan("timeFrame.startDate", this.startDate).or().greaterThan("timeFrame.endDate", this.startDate)
} else {
val endDate = this.endDate!!
query

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -11,7 +12,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import net.pokeranalytics.android.ui.view.TournamentFeatureRow
import java.util.*
open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -50,4 +51,8 @@ open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDa
SimpleRow.NAME -> this.name = value as String? ?: ""
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}

@ -3,6 +3,7 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.ObjectSavable
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetData
import net.pokeranalytics.android.ui.view.RowEditable
@ -12,7 +13,7 @@ import net.pokeranalytics.android.ui.view.TransactionTypeRow
import java.util.*
open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable {
open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -60,6 +61,9 @@ open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveData
}
}
override fun isValidForSave(): Boolean {
return this.name.isNotEmpty()
}
}
enum class TransactionKind {

@ -0,0 +1,50 @@
package net.pokeranalytics.android.ui.adapter
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.row_bottom_sheet_grid_title.view.*
import net.pokeranalytics.android.R
class LimitTypesAdapter(private var tableSizes: ArrayList<String>) : RecyclerView.Adapter<RecyclerView.ViewHolder>() {
companion object {
const val ROW_LIMIT: Int = 100
}
var onClickOnItem: ((position: Int) -> Unit)? = null
inner class CellSessionViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
fun bind(tableSize: String) {
itemView.title.text = tableSize
itemView.container.setOnClickListener {
onClickOnItem?.invoke(adapterPosition)
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
when (viewType) {
ROW_LIMIT -> return CellSessionViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.row_bottom_sheet_title, parent, false))
else -> throw IllegalStateException("Need to implement type $viewType in HistoryAdapter")
}
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
when (getItemViewType(position)) {
ROW_LIMIT -> (holder as LimitTypesAdapter.CellSessionViewHolder).bind(tableSizes[position])
}
}
override fun getItemCount(): Int {
return tableSizes.size
}
override fun getItemViewType(position: Int): Int {
return ROW_LIMIT
}
}

@ -21,6 +21,7 @@ import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheet
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment
import net.pokeranalytics.android.ui.view.RowEditable
import net.pokeranalytics.android.ui.view.RowRepresentable
import timber.log.Timber
class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate {
@ -55,7 +56,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
rowRepresentableAdapter.refreshRow(row)
}
override fun setValue(value: Any, row: RowRepresentable) {
override fun setValue(value: Any?, row: RowRepresentable) {
(this.item as RowEditable).updateValue(value, row)
this.getRealm().executeTransaction {
it.copyToRealmOrUpdate(this.item)
@ -93,7 +94,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
}
} else {
val builder = AlertDialog.Builder(it.context)
builder.setTitle(R.string.warning)
.setMessage(R.string.empty_name_for_br_error)
.setNegativeButton(R.string.ok, null)
builder.show()
}
@ -106,8 +107,16 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
.setMessage(R.string.are_you_sure_you_want_to_do_that_)
.setNeutralButton(R.string.no, null)
.setNegativeButton(R.string.yes, DialogInterface.OnClickListener { dialog, id ->
if (this.item.isManaged) {
Toast.makeText(requireContext(), "isManaged", Toast.LENGTH_SHORT).show()
Timber.d("is managed")
this.getRealm().executeTransaction {
this.item.deleteFromRealm()
this.liveDataType.deleteData(it, (this.item as LiveDataDataSource))
}
} else {
Toast.makeText(requireContext(), "isNotManaged", Toast.LENGTH_SHORT).show()
Timber.d("is not managed")
}
this.activity?.let {
it.finish()

@ -91,11 +91,17 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
override fun clickOnClear(row: RowRepresentable) {
currentSession.updateValue(null, row)
sessionAdapter.refreshRow(row)
when(row) {
SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI()
}
}
override fun setValue(value: Any, row: RowRepresentable) {
override fun setValue(value: Any?, row: RowRepresentable) {
currentSession.updateValue(value, row)
sessionAdapter.refreshRow(row)
when(row) {
SessionRow.START_DATE, SessionRow.END_DATE -> updateSessionUI()
}
}
/**

@ -26,7 +26,7 @@ class BottomSheetDoubleEditTextFragment : BottomSheetFragment() {
editText1.requestFocus()
}
override fun getValue(): Any {
override fun getValue(): Any? {
return values
}

@ -1,62 +0,0 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.bottom_sheet_double_list.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Game
import net.pokeranalytics.android.ui.adapter.components.LiveDataAdapter
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource
import net.pokeranalytics.android.ui.adapter.components.LiveDataDelegate
class BottomSheetDoubleListFragment : BottomSheetFragment(), LiveDataDelegate {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
}
override fun data(position: Int): LiveDataDataSource {
//TODO: Change that
return Game()
}
override fun onRowSelected(position: Int) {
}
override fun size(): Int {
return 1
}
/**
* Init data
*/
private fun initData() {
val data = getData()
//game = if (data is Game) data else Game()
//game.title = "Test"
}
/**
* Init UI
*/
private fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_double_list, view?.bottomSheetContainer, true)
val viewManager = LinearLayoutManager(requireContext())
val dataAdapter = LiveDataAdapter(this, R.layout.row_bottom_sheet_title)
reyclerView1.apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = dataAdapter
}
}
}

@ -26,7 +26,7 @@ class BottomSheetEditTextFragment : BottomSheetFragment() {
editText1.requestFocus()
}
override fun getValue(): Any {
override fun getValue(): Any? {
return value
}

@ -14,6 +14,7 @@ import net.pokeranalytics.android.ui.view.RowRepresentable
enum class BottomSheetType {
NONE,
LIST,
LIST_GAME,
DOUBLE_LIST,
GRID,
EDIT_TEXT,
@ -24,7 +25,7 @@ enum class BottomSheetType {
interface BottomSheetDelegate {
fun clickOnAdd(row: RowRepresentable)
fun clickOnClear(row: RowRepresentable)
fun setValue(value: Any, row: RowRepresentable)
fun setValue(value: Any?, row: RowRepresentable)
}
@ -45,8 +46,9 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
val bottomSheetFragment = when (row.bottomSheetType) {
BottomSheetType.LIST -> BottomSheetListFragment()
BottomSheetType.LIST_GAME -> BottomSheetListGameFragment()
BottomSheetType.GRID -> BottomSheetTableSizeGridFragment()
BottomSheetType.DOUBLE_LIST -> BottomSheetDoubleListFragment()
BottomSheetType.DOUBLE_LIST -> BottomSheetListGameFragment()
BottomSheetType.EDIT_TEXT -> BottomSheetEditTextFragment()
BottomSheetType.DOUBLE_EDIT_TEXT -> BottomSheetDoubleEditTextFragment()
BottomSheetType.SUM -> BottomSheetSumFragment()
@ -114,8 +116,8 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
return data
}
open fun getValue(): Any {
return Any()
open fun getValue(): Any? {
return null
}
/**

@ -55,7 +55,6 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveDataDelegate {
* Init data
*/
private fun initData() {
val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.first().data != null) {
this.realmData = bottomSheetData.first().data as RealmResults<*>

@ -0,0 +1,103 @@
package net.pokeranalytics.android.ui.fragment.components.bottomsheet
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.RealmResults
import kotlinx.android.synthetic.main.bottom_sheet_game_list.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Game
import net.pokeranalytics.android.ui.adapter.LimitTypesAdapter
import net.pokeranalytics.android.ui.adapter.components.LiveDataAdapter
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource
import net.pokeranalytics.android.ui.adapter.components.LiveDataDelegate
import timber.log.Timber
class BottomSheetListGameFragment : BottomSheetFragment(), LiveDataDelegate {
private var realmData: RealmResults<*>? = null
private lateinit var dataAdapter: LiveDataAdapter
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
initData()
initUI()
}
override fun onResume() {
super.onResume()
dataAdapter.notifyDataSetChanged()
}
override fun data(position: Int): LiveDataDataSource {
realmData?.let {
return it[position] as LiveDataDataSource
}
//TODO: Change that
return Game()
}
override fun onRowSelected(position: Int) {
realmData?.let {
val selectedData = it[position]
selectedData?.let {data ->
bottomSheetDelegate.setValue(data, row)
dismiss()
}
}
}
override fun size(): Int {
Timber.d("Games: ${realmData?.size}")
return realmData?.size ?: 0
}
/**
* Init data
*/
private fun initData() {
val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.size >= 2 && bottomSheetData[1].data != null) {
this.realmData = bottomSheetData[1].data as RealmResults<*>
}
}
/**
* Init UI
*/
private fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true)
val limits = ArrayList<String>()
limits.addAll(resources.getStringArray(R.array.limit_short_name))
val viewManager1 = LinearLayoutManager(requireContext())
val gameDataAdapter1 = LimitTypesAdapter(limits)
recyclerView1.apply {
setHasFixedSize(true)
layoutManager = viewManager1
adapter = gameDataAdapter1
isNestedScrollingEnabled = false
}
val viewManager2 = LinearLayoutManager(requireContext())
dataAdapter = LiveDataAdapter(this, R.layout.row_bottom_sheet_title)
recyclerView2.apply {
setHasFixedSize(true)
layoutManager = viewManager2
adapter = dataAdapter
}
}
}

@ -28,7 +28,7 @@ class BottomSheetSumFragment : BottomSheetFragment() {
editText1.requestFocus()
}
override fun getValue(): Any {
override fun getValue(): Any? {
return value
}

@ -15,6 +15,7 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment() {
private var dataList: ArrayList<String> = ArrayList()
private lateinit var dataAdapter: TableSizeGridAdapter
private var defaultSize: Int? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@ -27,11 +28,20 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment() {
dataAdapter.notifyDataSetChanged()
}
override fun getValue(): Any? {
return defaultSize
}
/**
* Init data
*/
private fun initData() {
val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.first().defaultValue != null) {
defaultSize = bottomSheetData.first().defaultValue as Int?
}
dataList.add(getString(net.pokeranalytics.android.R.string.heads_up))
for (i in 3..10) {
dataList.add("$i-max")

@ -149,7 +149,8 @@ enum class SessionRow : RowRepresentable {
CASHED_OUT, BREAK_TIME -> BottomSheetType.EDIT_TEXT
BUY_IN, TIPS -> BottomSheetType.SUM
BLINDS -> BottomSheetType.DOUBLE_EDIT_TEXT
GAME, LOCATION, BANKROLL -> BottomSheetType.LIST
GAME -> BottomSheetType.LIST_GAME
LOCATION, BANKROLL -> BottomSheetType.LIST
TABLE_SIZE -> BottomSheetType.GRID
COMMENT -> BottomSheetType.EDIT_TEXT
else -> BottomSheetType.NONE

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/reyclerView1"
android:layout_width="80dp"
android:layout_height="wrap_content"
android:minHeight="200dp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/reyclerView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="200dp" />
</LinearLayout>

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView1"
android:layout_width="80dp"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView2"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/recyclerView1"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="blind_structure">
<item>2</item>
<item>4</item>
<item>6</item>
<item>10</item>
<item>20</item>
<item>40</item>
<item>50</item>
<item>60</item>
<item>80</item>
<item>100</item>
<item>150</item>
<item>200</item>
<item>250</item>
<item>300</item>
<item>400</item>
<item>500</item>
<item>600</item>
<item>800</item>
<item>1000</item>
<item>1200</item>
<item>1600</item>
<item>2000</item>
<item>2500</item>
<item>3000</item>
<item>4000</item>
<item>5000</item>
<item>6000</item>
<item>8000</item>
<item>10000</item>
<item>12000</item>
<item>15000</item>
<item>20000</item>
<item>25000</item>
<item>30000</item>
<item>40000</item>
<item>50000</item>
<item>60000</item>
<item>80000</item>
<item>100000</item>
</array>
</resources>

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="limit_name">
<item>No Limit</item>
<item>Pot Limit</item>
<item>Fixed Limit</item>
<item>Spread Limit</item>
<item>Mixed Limit</item>
</string-array>
<string-array name="limit_short_name">
<item>NL</item>
<item>PL</item>
<item>FL</item>
<item>SL</item>
<item>ML</item>
</string-array>
</resources>

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="game_name">
<item>Hold\'em</item>
<item>Omaha</item>
<item>Omaha Hi-Low</item>
<item>Seven Card Stud</item>
<item>Seven Card Stud Hi-Low</item>
<item>H.O.R.S.E.</item>
<item>Seven Card Razz</item>
</string-array>
<string-array name="game_short_name">
<item>HE</item>
<item>OH</item>
<item>OH8</item>
<item>7S</item>
<item>Stud8</item>
<item>HORSE</item>
<item>Razz</item>
</string-array>
</resources>

@ -18,7 +18,6 @@
<string name="standard_deviation_hourly">Standard deviation hourly</string>
<string name="hands_played">Hands played</string>
<string name="save">Save</string>
<!--
<string name="bankroll">Bankroll</string>
@ -730,4 +729,6 @@
<string name="bb_ante_option">Big Blind Ante</string>
<string name="show_fullscreen">Show full screen</string>
<string name="save">Save</string>
</resources>

Loading…
Cancel
Save