refactoring

feature/top10
Razmig Sarkissian 7 years ago
parent 6850060c87
commit fc540a4e3d
  1. 7
      app/src/main/java/net/pokeranalytics/android/model/TableSize.kt
  2. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  3. 9
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  4. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  5. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 8
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
  7. 2
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentType.kt
  8. 7
      app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
  9. 5
      app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt
  10. 78
      app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableDataSource.kt
  11. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
  12. 6
      app/src/main/java/net/pokeranalytics/android/ui/fragment/HistoryFragment.kt
  13. 14
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt
  14. 9
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt
  15. 19
      app/src/main/java/net/pokeranalytics/android/ui/fragment/StatsFragment.kt
  16. 12
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  17. 12
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt
  18. 16
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetTableSizeGridFragment.kt
  19. 7
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt

@ -7,8 +7,11 @@ import net.pokeranalytics.android.ui.view.RowViewType
class TableSize(var numberOfPlayer: Int) : RowRepresentable {
companion object {
val all = Array(9, init =
{ index -> TableSize(index + 2) })
val all : List<TableSize>
get() {
return Array(9, init =
{ index -> TableSize(index + 2) }).toList()
}
}
override val resId: Int?

@ -2,10 +2,9 @@ package net.pokeranalytics.android.model.realm
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.Ignore
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.BankrollRow
@ -14,7 +13,7 @@ import java.util.*
import kotlin.collections.ArrayList
open class Bankroll(name: String = "") : RealmObject(), Savable,
RowRepresentableDataSource, RowRepresentable {
StaticRowRepresentableDataSource, RowRepresentable {
companion object {
fun newInstance() : Bankroll {
@ -50,7 +49,7 @@ open class Bankroll(name: String = "") : RealmObject(), Savable,
// Row Representable Datasource
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME)
rows.addAll(BankrollRow.values())

@ -1,18 +1,17 @@
package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.Ignore
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.GameRow
import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow
import java.util.*
import kotlin.collections.ArrayList
open class Game : RealmObject(), Savable, RowRepresentableDataSource,
open class Game : RealmObject(), Savable, StaticRowRepresentableDataSource,
RowRepresentable {
@PrimaryKey
@ -32,7 +31,7 @@ open class Game : RealmObject(), Savable, RowRepresentableDataSource,
return this.id
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME)
rows.addAll(GameRow.values())

@ -3,15 +3,16 @@ package net.pokeranalytics.android.model.realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.LocationRow
import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow
import java.util.*
import kotlin.collections.ArrayList
open class Location : RealmObject(), Savable, RowRepresentableDataSource, RowRepresentable {
open class Location : RealmObject(), Savable, StaticRowRepresentableDataSource, RowRepresentable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -33,7 +34,7 @@ open class Location : RealmObject(), Savable, RowRepresentableDataSource, RowRep
return this.id
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME)
rows.addAll(LocationRow.values())

@ -14,7 +14,7 @@ import net.pokeranalytics.android.model.TableSize
import net.pokeranalytics.android.model.extensions.SessionState
import net.pokeranalytics.android.model.extensions.getState
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.RowViewType
@ -25,7 +25,7 @@ import java.util.*
import kotlin.collections.ArrayList
open class Session : RealmObject(), SessionInterface, Savable,
RowRepresentableDataSource, RowRepresentable {
StaticRowRepresentableDataSource, RowRepresentable {
enum class Type {
CASH_GAME,
@ -308,7 +308,7 @@ open class Session : RealmObject(), SessionInterface, Savable,
return "Session ${this.creationDate}"
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
// Headers

@ -2,17 +2,17 @@ package net.pokeranalytics.android.model.realm
import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.Ignore
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow
import net.pokeranalytics.android.ui.view.rowrepresentable.TournamentFeatureRow
import java.util.*
import kotlin.collections.ArrayList
open class TournamentFeature : RealmObject(), Savable, RowRepresentableDataSource, RowRepresentable {
open class TournamentFeature : RealmObject(), Savable, StaticRowRepresentableDataSource, RowRepresentable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -28,7 +28,7 @@ open class TournamentFeature : RealmObject(), Savable, RowRepresentableDataSourc
return this.id
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME)
rows.addAll(TournamentFeatureRow.values())

@ -9,7 +9,7 @@ import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow
import java.util.*
open class TournamentType : RealmObject(), Savable, RowRepresentableDataSource, RowRepresentable {
open class TournamentType : RealmObject(), Savable, RowRepresentable {
@PrimaryKey
var id = UUID.randomUUID().toString()

@ -4,15 +4,16 @@ import android.text.InputType
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow
import net.pokeranalytics.android.ui.view.rowrepresentable.TransactionTypeRow
import java.util.*
import kotlin.collections.ArrayList
open class TransactionType : RealmObject(), Savable, RowRepresentableDataSource, RowRepresentable {
open class TransactionType : RealmObject(), Savable, StaticRowRepresentableDataSource, RowRepresentable {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -37,7 +38,7 @@ open class TransactionType : RealmObject(), Savable, RowRepresentableDataSource,
return this.id
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME)
rows.addAll(TransactionTypeRow.values())

@ -37,8 +37,9 @@ class RowRepresentableAdapter(
}
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val rowRepresentable = this.dataSource.rowRepresentableForPosition(position)
(holder as BindableHolder).bind(position, rowRepresentable, this)
this.dataSource.rowRepresentableForPosition(position)?.let {
(holder as BindableHolder).bind(position, it, this)
}
}
/**

@ -4,37 +4,64 @@ import android.content.Context
import net.pokeranalytics.android.calculus.TextFormat
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor
import org.w3c.dom.Text
interface RowRepresentableDataSource : DisplayableDataSource {
interface RowRepresentableDataSource: EditableDataSource, DisplayableDataSource {
/**
* Returns a list of rows
*/
fun adapterRows(): List<out RowRepresentable>?
fun rowRepresentableForPosition(position:Int): RowRepresentable {
if (this.numberOfRows() > position) {
return this.adapterRows()[position]
} else {
throw IllegalStateException("Need to implement Data Source")
fun rowRepresentableForPosition(position:Int): RowRepresentable?
fun numberOfRows(): Int
fun viewTypeForPosition(position:Int): Int
fun indexForRow(row: RowRepresentable): Int
}
interface StaticRowRepresentableDataSource: RowRepresentableDataSource {
override fun rowRepresentableForPosition(position:Int): RowRepresentable? {
this.adapterRows()?.let {
return it[position]
}
throw IllegalStateException("Need to implement Data Source")
}
fun numberOfRows(): Int {
return this.adapterRows().size
override fun numberOfRows(): Int {
this.adapterRows()?.let {
return it.size
}
throw IllegalStateException("Need to implement Data Source")
}
fun viewTypeForPosition(position:Int): Int {
return this.rowRepresentableForPosition(position).viewType
override fun viewTypeForPosition(position:Int): Int {
this.rowRepresentableForPosition(position)?.let {
return it.viewType
}
throw IllegalStateException("Need to implement Data Source")
}
fun indexForRow(row: RowRepresentable): Int {
return this.adapterRows().indexOf(row)
override fun indexForRow(row: RowRepresentable): Int {
this.adapterRows()?.let {
return it.indexOf(row)
}
throw IllegalStateException("Need to implement Data Source")
}
}
/**
* A list of [RowRepresentableEditDescriptor] object specifying the way the edition will be handled
*/
fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor> {
return ArrayList()
interface LiveRowRepresentableDataSource: RowRepresentableDataSource {
override fun adapterRows(): List<out RowRepresentable>? {
return null
}
}
class DisplayDescriptor(
var boolValue: Boolean? = null,
var stringValue: String? = null,
var textFormat: TextFormat? = null,
var actionIcon: Int? = null,
var context: Context? = null) {
}
/**
* An interface used to provide RowRepresentableAdapter content and value in the form of rows
*
@ -46,11 +73,9 @@ interface RowRepresentableDataSource : DisplayableDataSource {
*/
interface DisplayableDataSource {
/**
* Returns a list of rows
*/
fun adapterRows(): ArrayList<RowRepresentable> {
return ArrayList()
fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? {
return null
}
/**
@ -89,3 +114,12 @@ interface DisplayableDataSource {
}
}
interface EditableDataSource {
/**
* A list of [RowRepresentableEditDescriptor] object specifying the way the edition will be handled
*/
fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor> {
return ArrayList()
}
}

@ -12,8 +12,8 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
@ -21,7 +21,7 @@ import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow
class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
class DataListFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource,
RowRepresentableDelegate {
private lateinit var dataType: SettingRow
@ -38,7 +38,7 @@ class DataListFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
initUI()
}
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
return this.items[position] as RowRepresentable
}

@ -16,8 +16,8 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.activity.SessionActivity
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.HistorySessionDiffCallback
@ -30,7 +30,7 @@ import net.pokeranalytics.android.util.isSameMonth
import net.pokeranalytics.android.util.longDate
import java.util.*
class HistoryFragment : PokerAnalyticsFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
class HistoryFragment : PokerAnalyticsFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate {
companion object {
fun newInstance(): HistoryFragment {
@ -148,7 +148,7 @@ class HistoryFragment : PokerAnalyticsFragment(), RowRepresentableDataSource, Ro
}
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
return this.rows[position]
}

@ -216,15 +216,17 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Bott
*/
private fun updateAdapterUI(scrollToTop: Boolean) {
val diffResult = DiffUtil.calculateDiff(RowRepresentableDiffCallback(currentSession.adapterRows(), oldRows))
sessionAdapter.updateRows(diffResult)
currentSession.adapterRows()?.let {
val diffResult = DiffUtil.calculateDiff(RowRepresentableDiffCallback(it, oldRows))
sessionAdapter.updateRows(diffResult)
oldRows.clear()
oldRows.addAll(currentSession.adapterRows())
oldRows.clear()
oldRows.addAll(it)
if (scrollToTop) {
recyclerView.smoothScrollToPosition(0)
if (scrollToTop) {
recyclerView.smoothScrollToPosition(0)
}
}
}

@ -9,15 +9,12 @@ import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_settings.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.*
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow
class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
RowRepresentableDelegate {
class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, StaticRowRepresentableDataSource {
companion object {
@ -44,7 +41,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource,
initData()
}
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
val rows = ArrayList<RowRepresentable>()
rows.addAll(SettingRow.values())
return rows

@ -12,15 +12,17 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.calculus.*
import net.pokeranalytics.android.model.StatRepresentable
import net.pokeranalytics.android.model.realm.Session
import net.pokeranalytics.android.ui.adapter.DisplayDescriptor
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.view.rowrepresentable.HeaderRowRepresentable
import net.pokeranalytics.android.util.NULL_TEXT
class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource {
class StatsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource {
private var rowRepresentables: ArrayList<RowRepresentable> = ArrayList<RowRepresentable>()
@ -52,10 +54,23 @@ class StatsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource {
// Row Representable DS
override fun adapterRows(): ArrayList<RowRepresentable> {
override fun adapterRows(): List<out RowRepresentable>? {
return this.rowRepresentables
}
override fun contentDescriptorForRow(row: RowRepresentable): DisplayDescriptor? {
var dc = DisplayDescriptor()
dc.textFormat = TextFormat(NULL_TEXT)
if (row is StatRepresentable) {
context?.let { context ->
row.computedStat?.let {
dc.textFormat = it.format(context)
}
}
}
return dc
}
override fun statFormatForRow(row: RowRepresentable): TextFormat {
if (row is StatRepresentable) {
context?.let { context ->

@ -8,13 +8,13 @@ import io.realm.RealmResults
import kotlinx.android.synthetic.main.bottom_sheet_list.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
class BottomSheetListFragment : BottomSheetFragment(), RowRepresentableDataSource,
class BottomSheetListFragment : BottomSheetFragment(), LiveRowRepresentableDataSource,
RowRepresentableDelegate {
private var realmData: RealmResults<*>? = null
@ -31,18 +31,18 @@ class BottomSheetListFragment : BottomSheetFragment(), RowRepresentableDataSourc
dataAdapter.notifyDataSetChanged()
}
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
realmData?.let {
return it[position] as RowRepresentable
}
return super.rowRepresentableForPosition(position)
return null
}
override fun numberOfRows(): Int {
realmData?.let {
return it.size
}
return super.numberOfRows()
throw IllegalStateException("Need to implement Data Source")
}
override fun viewTypeForPosition(position: Int): Int {
@ -53,7 +53,7 @@ class BottomSheetListFragment : BottomSheetFragment(), RowRepresentableDataSourc
realmData?.let {
return it.indexOf(row)
}
return super.indexForRow(row)
throw IllegalStateException("Need to implement Data Source")
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {

@ -10,14 +10,14 @@ 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.Limit
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.RowViewType
class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
class BottomSheetListGameFragment : BottomSheetFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate {
private var limit: Int = -1
private var realmData: RealmResults<*>? = null
@ -39,18 +39,18 @@ class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataS
return values
}
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
override fun rowRepresentableForPosition(position: Int): RowRepresentable? {
realmData?.let {
return it[position] as RowRepresentable
}
return super.rowRepresentableForPosition(position)
throw IllegalStateException("Need to implement Data Source")
}
override fun numberOfRows(): Int {
realmData?.let {
return it.size
}
return super.numberOfRows()
return 0
}
override fun viewTypeForPosition(position: Int): Int {
@ -61,7 +61,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataS
realmData?.let {
return it.indexOf(row)
}
return super.indexForRow(row)
throw IllegalStateException("Need to implement Data Source")
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {

@ -8,14 +8,14 @@ import kotlinx.android.synthetic.main.bottom_sheet_grid.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.model.TableSize
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
import net.pokeranalytics.android.ui.view.GridSpacingItemDecoration
import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.util.px
class BottomSheetTableSizeGridFragment : BottomSheetFragment(),
RowRepresentableDataSource,
StaticRowRepresentableDataSource,
RowRepresentableDelegate {
private lateinit var dataAdapter: RowRepresentableAdapter
@ -72,16 +72,8 @@ class BottomSheetTableSizeGridFragment : BottomSheetFragment(),
}
}
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
return TableSize.all[position]
}
override fun indexForRow(row: RowRepresentable): Int {
return TableSize.all.indexOf(row)
}
override fun numberOfRows(): Int {
return TableSize.all.size
override fun adapterRows(): List<out RowRepresentable>? {
return TableSize.all
}
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) {

@ -220,10 +220,9 @@ enum class RowViewType {
BindableHolder {
override fun bind(position: Int, row: RowRepresentable, adapter: RowRepresentableAdapter) {
itemView.rowStatsTitleValue_title.text = row.localizedTitle(itemView.context)
adapter.dataSource?.let {
val format = it.statFormatForRow(row)
itemView.rowStatsTitleValue_value.text = format.text
itemView.rowStatsTitleValue_value.setTextColor(format.getColor(itemView.context))
adapter.dataSource.contentDescriptorForRow(row)?.textFormat?.let {
itemView.rowStatsTitleValue_value.text = it.text
itemView.rowStatsTitleValue_value.setTextColor(it.getColor(itemView.context))
}
val listener = View.OnClickListener {
adapter.delegate?.onRowSelected(position, row)

Loading…
Cancel
Save