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

feature/top10
Razmig Sarkissian 7 years ago
commit d37ccef5c3
  1. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  3. 3
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  4. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetFragment.kt
  5. 13
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  6. 55
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt

@ -31,6 +31,7 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentabl
import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresentable import net.pokeranalytics.android.ui.view.rowrepresentable.SeparatorRowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow
import net.pokeranalytics.android.util.* import net.pokeranalytics.android.util.*
import timber.log.Timber
import java.util.* import java.util.*
import java.util.Currency import java.util.Currency
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@ -416,7 +417,9 @@ open class Session : RealmObject(), SessionInterface, Manageable, StaticRowRepre
fun getGameTitle(): String { fun getGameTitle(): String {
var gameTitle = "" var gameTitle = ""
limit?.let { limit?.let {
gameTitle += Limit.values()[it].shortName + " " if (it >= 0 && it < Limit.values().size) {
gameTitle += Limit.values()[it].shortName + " "
}
} }
if (game != null) { if (game != null) {
gameTitle += game?.name gameTitle += game?.name
@ -776,9 +779,12 @@ open class Session : RealmObject(), SessionInterface, Manageable, StaticRowRepre
} catch (e: Exception) { } catch (e: Exception) {
null null
} }
} else if (value is Game) {
game = value
} else if (value == null) { } else if (value == null) {
limit = null limit = null
game = null game = null
} }
} }
SessionRow.INITIAL_BUY_IN -> tournamentEntryFee = if (value == null) null else (value as String).toDouble() SessionRow.INITIAL_BUY_IN -> tournamentEntryFee = if (value == null) null else (value as String).toDouble()

@ -21,12 +21,11 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetDelegate
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
open class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate { open class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate {
lateinit var parentActivity: PokerAnalyticsActivity lateinit var parentActivity: PokerAnalyticsActivity
lateinit var item: RealmObject lateinit var item: RealmObject
@ -68,10 +67,6 @@ open class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDele
BottomSheetFragment.create(fragmentManager, row, this, (this.item as RowRepresentableDataSource).editDescriptors(row)) BottomSheetFragment.create(fragmentManager, row, this, (this.item as RowRepresentableDataSource).editDescriptors(row))
} }
override fun clickOnAdd(row: RowRepresentable) {
Toast.makeText(requireContext(), "Add new element: $row", Toast.LENGTH_SHORT).show()
}
override fun onRowValueChanged(value: Any?, row: RowRepresentable) { override fun onRowValueChanged(value: Any?, row: RowRepresentable) {
this.getRealm().executeTransaction { this.getRealm().executeTransaction {
(this.item as Savable).updateValue(value, row) (this.item as Savable).updateValue(value, row)

@ -20,7 +20,6 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetDelegate
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetFragment
import net.pokeranalytics.android.ui.helpers.DateTimePickerManager import net.pokeranalytics.android.ui.helpers.DateTimePickerManager
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
@ -30,7 +29,7 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SessionRow
import java.util.* import java.util.*
class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, BottomSheetDelegate { class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate {
private lateinit var parentActivity: PokerAnalyticsActivity private lateinit var parentActivity: PokerAnalyticsActivity
private lateinit var currentSession: Session private lateinit var currentSession: Session

@ -35,17 +35,10 @@ enum class BottomSheetType {
SUM SUM
} }
interface BottomSheetDelegate : RowRepresentableDelegate {
fun clickOnAdd(row: RowRepresentable) {}
fun clickOnClear(row: RowRepresentable) {
this.onRowValueChanged(null, row)
}
}
open class BottomSheetFragment : BottomSheetDialogFragment() { open class BottomSheetFragment : BottomSheetDialogFragment() {
lateinit var row: RowRepresentable lateinit var row: RowRepresentable
lateinit var delegate: BottomSheetDelegate lateinit var delegate: RowRepresentableDelegate
private var isClearable: Boolean = true private var isClearable: Boolean = true
private var rowRepresentableEditDescriptors: ArrayList<RowRepresentableEditDescriptor> = ArrayList() private var rowRepresentableEditDescriptors: ArrayList<RowRepresentableEditDescriptor> = ArrayList()
@ -57,7 +50,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
fun create( fun create(
fragmentManager: FragmentManager?, fragmentManager: FragmentManager?,
row: RowRepresentable, row: RowRepresentable,
delegate: BottomSheetDelegate, delegate: RowRepresentableDelegate,
rowRepresentableEditDescriptors: ArrayList<RowRepresentableEditDescriptor>, rowRepresentableEditDescriptors: ArrayList<RowRepresentableEditDescriptor>,
isClearable: Boolean? = true isClearable: Boolean? = true
): BottomSheetFragment { ): BottomSheetFragment {
@ -131,7 +124,7 @@ open class BottomSheetFragment : BottomSheetDialogFragment() {
// Menu // Menu
bottomSheetToolbar.menu.findItem(R.id.actionClear).setOnMenuItemClickListener { bottomSheetToolbar.menu.findItem(R.id.actionClear).setOnMenuItemClickListener {
this.delegate.clickOnClear(row) delegate.onRowValueChanged(null, row)
dismiss() dismiss()
true true
} }

@ -14,11 +14,10 @@ import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.RowViewType
class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, open class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate {
RowRepresentableDelegate {
private var realmData: RealmResults<*>? = null lateinit var dataAdapter: RowRepresentableAdapter
private lateinit var dataAdapter: RowRepresentableAdapter var realmData: RealmResults<*>? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
@ -35,7 +34,7 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataS
realmData?.let { realmData?.let {
return it[position] as RowRepresentable return it[position] as RowRepresentable
} }
return null throw IllegalStateException("Need to implement Data Source")
} }
override fun numberOfRows(): Int { override fun numberOfRows(): Int {
@ -70,7 +69,7 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataS
/** /**
* Init data * Init data
*/ */
private fun initData() { open fun initData() {
val bottomSheetData = getData() val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.first().data != null) { if (bottomSheetData.isNotEmpty() && bottomSheetData.first().data != null) {
this.realmData = bottomSheetData.first().data as RealmResults<*> this.realmData = bottomSheetData.first().data as RealmResults<*>
@ -80,7 +79,7 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataS
/** /**
* Init UI * Init UI
*/ */
private fun initUI() { open fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true)

@ -10,18 +10,16 @@ import kotlinx.android.synthetic.main.bottom_sheet_game_list.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.* import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.Limit import net.pokeranalytics.android.model.Limit
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
/**
* Bottom Sheet List Game Fragment
* Display a list of game + chips to choose the game limit
*/
class BottomSheetListGameFragment : BottomSheetListFragment() {
class BottomSheetListGameFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate { private var limit: Int? = 0
private var limit: Int = -1
private var realmData: RealmResults<*>? = null
private lateinit var dataAdapter: RowRepresentableAdapter
private val values = ArrayList<Any?>() private val values = ArrayList<Any?>()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -30,40 +28,10 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveRowRepresentableD
initUI() initUI()
} }
override fun onResume() {
super.onResume()
dataAdapter.notifyDataSetChanged()
}
override fun getValue(): Any? { override fun getValue(): Any? {
return values return values
} }
override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
realmData?.let {
return it[position] as RowRepresentable
}
throw IllegalStateException("Need to implement Data Source")
}
override fun numberOfRows(): Int {
realmData?.let {
return it.size
}
return 0
}
override fun viewTypeForPosition(position: Int): Int {
return RowViewType.BOTTOM_SHEET_DATA.ordinal
}
override fun indexForRow(row: RowRepresentable): Int {
realmData?.let {
return it.indexOf(row)
}
throw IllegalStateException("Need to implement Data Source")
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {
realmData?.let { realmData?.let {
val selectedData = it[position] val selectedData = it[position]
@ -73,16 +41,15 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveRowRepresentableD
dismiss() dismiss()
} }
} }
super.onRowSelected(position, row, fromAction)
} }
/** /**
* Init data * Init data
*/ */
private fun initData() { override fun initData() {
val bottomSheetData = getData() val bottomSheetData = getData()
if (bottomSheetData.isNotEmpty() && bottomSheetData.size >= 2 && bottomSheetData[1].data != null) { if (bottomSheetData.isNotEmpty() && bottomSheetData.size >= 2 && bottomSheetData[1].data != null) {
this.limit = bottomSheetData[0].defaultValue as Int? ?: -1 this.limit = bottomSheetData[0].defaultValue as Int?
this.realmData = bottomSheetData[1].data as RealmResults<*> this.realmData = bottomSheetData[1].data as RealmResults<*>
} }
} }
@ -90,18 +57,18 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveRowRepresentableD
/** /**
* Init UI * Init UI
*/ */
private fun initUI() { override fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true) LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_game_list, view?.bottomSheetContainer, true)
values.add(0, if (limit == -1) null else limit) values.add(0, limit)
values.add(1, null) values.add(1, null)
chipGroup.removeAllViews() chipGroup.removeAllViews()
Limit.values().forEach { Limit.values().forEach {
val chip = Chip(requireContext()) val chip = Chip(requireContext())
chip.text = it.shortName
chip.id = it.ordinal chip.id = it.ordinal
chip.text = it.shortName
chip.isChecked = it.ordinal == limit chip.isChecked = it.ordinal == limit
chipGroup.addView(chip) chipGroup.addView(chip)
} }

Loading…
Cancel
Save