remove usage of LiveDataAdapter and related interface

feature/top10
Razmig Sarkissian 7 years ago
parent 7feec6f693
commit 4242e4cfb7
  1. 4
      app/src/main/java/net/pokeranalytics/android/model/LiveData.kt
  2. 5
      app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  4. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/Location.kt
  5. 15
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  6. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/TournamentFeature.kt
  7. 4
      app/src/main/java/net/pokeranalytics/android/model/realm/TransactionType.kt
  8. 1
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/LiveDataAdapter.kt
  9. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  10. 46
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListFragment.kt
  11. 49
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetListGameFragment.kt

@ -66,8 +66,8 @@ enum class LiveData : Localizable {
} }
} }
fun deleteData(realm:Realm, data:LiveDataDataSource) { fun deleteData(realm:Realm, data:ObjectSavable) {
realm.where(this.relatedEntity).equalTo("id", data.primaryKey).findAll().deleteAllFromRealm() realm.where(this.relatedEntity).equalTo("id", data.uniqueIdentifier()).findAll().deleteAllFromRealm()
} }
fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject { fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject {

@ -12,7 +12,7 @@ import net.pokeranalytics.android.ui.view.*
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
open class Bankroll(name: String = "") : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, open class Bankroll(name: String = "") : RealmObject(), RowRepresentableDataSource,
RowEditable, ObjectSavable, RowRepresentable { RowEditable, ObjectSavable, RowRepresentable {
companion object { companion object {
@ -47,9 +47,6 @@ open class Bankroll(name: String = "") : RealmObject(), RowRepresentableDataSour
return this.id return this.id
} }
override val title: String get() = this.name
override val primaryKey: String get() = this.id
override fun adapterRows(): ArrayList<RowRepresentable> { override fun adapterRows(): ArrayList<RowRepresentable> {
val rows = ArrayList<RowRepresentable>() val rows = ArrayList<RowRepresentable>()
rows.add(SimpleRow.NAME) rows.add(SimpleRow.NAME)

@ -11,7 +11,7 @@ import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheet
import net.pokeranalytics.android.ui.view.* import net.pokeranalytics.android.ui.view.*
import java.util.* import java.util.*
open class Game : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable, open class Game : RealmObject(), RowRepresentableDataSource, RowEditable, ObjectSavable,
RowRepresentable { RowRepresentable {
@PrimaryKey @PrimaryKey
@ -23,8 +23,6 @@ open class Game : RealmObject(), RowRepresentableDataSource, LiveDataDataSource,
// A shorter name for the game // A shorter name for the game
var shortName: String? = null var shortName: String? = null
override val title: String get() = this.name
override val primaryKey: String get() = this.id
override fun getDisplayName(): String { override fun getDisplayName(): String {
return this.name return this.name
} }

@ -13,7 +13,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import java.util.* import java.util.*
open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable, RowRepresentable { open class Location : RealmObject(), RowRepresentableDataSource, RowEditable, ObjectSavable, RowRepresentable {
@PrimaryKey @PrimaryKey
var id = UUID.randomUUID().toString() var id = UUID.randomUUID().toString()
@ -27,8 +27,6 @@ open class Location : RealmObject(), RowRepresentableDataSource, LiveDataDataSou
// the latitude of the location // the latitude of the location
var latitude: Double? = null var latitude: Double? = null
override val title: String get() = this.name
override val primaryKey: String get() = this.id
override fun getDisplayName(): String { override fun getDisplayName(): String {
return this.name return this.name
} }

@ -23,7 +23,7 @@ import net.pokeranalytics.android.util.toCurrency
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource, LiveDataDataSource, open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource,
RowEditable { RowEditable {
@PrimaryKey @PrimaryKey
@ -194,7 +194,7 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
gameTitle += limit gameTitle += limit
} }
if (game != null) { if (game != null) {
gameTitle += game?.title gameTitle += game?.name
} }
return gameTitle return gameTitle
} }
@ -256,9 +256,9 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
return when (row) { return when (row) {
SessionRow.BUY_IN -> buyin.toCurrency() SessionRow.BUY_IN -> buyin.toCurrency()
SessionRow.BLINDS -> if (cgSmallBlind != null && cgBigBlind != null) "$cgSmallBlind / $cgBigBlind" else "--" SessionRow.BLINDS -> if (cgSmallBlind != null && cgBigBlind != null) "$cgSmallBlind / $cgBigBlind" else "--"
SessionRow.GAME -> game?.title ?: "--" SessionRow.GAME -> game?.name ?: "--"
SessionRow.LOCATION -> location?.title ?: "--" SessionRow.LOCATION -> location?.name ?: "--"
SessionRow.BANKROLL -> bankroll?.title ?: "--" SessionRow.BANKROLL -> bankroll?.name ?: "--"
SessionRow.TABLE_SIZE -> tableSize?.toString() ?: "--" SessionRow.TABLE_SIZE -> tableSize?.toString() ?: "--"
SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.short() ?: "--" else "--" SessionRow.START_DATE -> if (timeFrame != null) timeFrame?.startDate?.short() ?: "--" else "--"
SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.short() ?: "--" else "--" SessionRow.END_DATE -> if (timeFrame != null) timeFrame?.endDate?.short() ?: "--" else "--"
@ -276,11 +276,6 @@ open class Session : RealmObject(), SessionInterface, RowRepresentableDataSource
} }
} }
override var title: String = "Change that: $creationDate"
override val primaryKey: String get() = this.id
override fun getBottomSheetData(row: RowRepresentable): ArrayList<BottomSheetData> { override fun getBottomSheetData(row: RowRepresentable): ArrayList<BottomSheetData> {
val data = ArrayList<BottomSheetData>() val data = ArrayList<BottomSheetData>()

@ -12,7 +12,7 @@ import net.pokeranalytics.android.ui.view.SimpleRow
import net.pokeranalytics.android.ui.view.TournamentFeatureRow import net.pokeranalytics.android.ui.view.TournamentFeatureRow
import java.util.* import java.util.*
open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable, RowRepresentable { open class TournamentFeature : RealmObject(), RowRepresentableDataSource, RowEditable, ObjectSavable, RowRepresentable {
@PrimaryKey @PrimaryKey
var id = UUID.randomUUID().toString() var id = UUID.randomUUID().toString()
@ -20,8 +20,6 @@ open class TournamentFeature : RealmObject(), RowRepresentableDataSource, LiveDa
// The name of the feature // The name of the feature
var name: String = "" var name: String = ""
override val title: String get() = this.name
override val primaryKey: String get() = this.id
override fun getDisplayName(): String { override fun getDisplayName(): String {
return this.name return this.name
} }

@ -13,7 +13,7 @@ import net.pokeranalytics.android.ui.view.TransactionTypeRow
import java.util.* import java.util.*
open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveDataDataSource, RowEditable, ObjectSavable, RowRepresentable { open class TransactionType : RealmObject(), RowRepresentableDataSource, RowEditable, ObjectSavable, RowRepresentable {
@PrimaryKey @PrimaryKey
var id = UUID.randomUUID().toString() var id = UUID.randomUUID().toString()
@ -30,8 +30,6 @@ open class TransactionType : RealmObject(), RowRepresentableDataSource, LiveData
// The predefined kind, if necessary, like: Withdrawal, deposit, or tips // The predefined kind, if necessary, like: Withdrawal, deposit, or tips
var kind: Int? = null var kind: Int? = null
override val title: String get() = this.name
override val primaryKey: String get() = this.id
override fun getDisplayName(): String { override fun getDisplayName(): String {
return this.name return this.name
} }

@ -16,7 +16,6 @@ enum class LiveDataViewType {
interface LiveDataDataSource { interface LiveDataDataSource {
val title: String val title: String
val primaryKey: String
} }
interface LiveDataDelegate { interface LiveDataDelegate {

@ -138,7 +138,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), RowRepresentableDelegate,
Toast.makeText(requireContext(), "isManaged", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "isManaged", Toast.LENGTH_SHORT).show()
Timber.d("is managed") Timber.d("is managed")
this.getRealm().executeTransaction { this.getRealm().executeTransaction {
this.liveDataType.deleteData(it, (this.item as LiveDataDataSource)) this.liveDataType.deleteData(it, (this.item as ObjectSavable))
} }
} else { } else {
Toast.makeText(requireContext(), "isNotManaged", Toast.LENGTH_SHORT).show() Toast.makeText(requireContext(), "isNotManaged", Toast.LENGTH_SHORT).show()

@ -8,16 +8,14 @@ import io.realm.RealmResults
import kotlinx.android.synthetic.main.bottom_sheet_list.* import kotlinx.android.synthetic.main.bottom_sheet_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.realm.Game import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.adapter.components.LiveDataAdapter import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.adapter.components.LiveDataDelegate
import net.pokeranalytics.android.ui.adapter.components.LiveDataViewType
class BottomSheetListFragment : BottomSheetFragment(), LiveDataDelegate { class BottomSheetListFragment : BottomSheetFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
private var realmData: RealmResults<*>? = null private var realmData: RealmResults<*>? = null
private lateinit var dataAdapter: LiveDataAdapter private lateinit var dataAdapter: RowRepresentableAdapter
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
@ -30,15 +28,32 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveDataDelegate {
dataAdapter.notifyDataSetChanged() dataAdapter.notifyDataSetChanged()
} }
override fun data(position: Int): LiveDataDataSource { override fun rowRepresentableForPosition(position: Int): RowRepresentable {
realmData?.let { realmData?.let {
return it[position] as LiveDataDataSource return it[position] as RowRepresentable
} }
//TODO: Change that return super.rowRepresentableForPosition(position)
return Game()
} }
override fun onRowSelected(position: Int) { override fun numberOfRows(): Int {
realmData?.let {
return it.size
}
return super.numberOfRows()
}
override fun viewTypeForPosition(position: Int): Int {
return RowViewType.BOTTOM_SHEET_DATA.ordinal
}
override fun indexForRow(row: RowRepresentable): Int {
realmData?.let {
return it.indexOf(row)
}
return super.indexForRow(row)
}
override fun onIndexSelected(position: Int) {
realmData?.let { realmData?.let {
val selectedData = it[position] val selectedData = it[position]
selectedData?.let {data -> selectedData?.let {data ->
@ -46,10 +61,7 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveDataDelegate {
dismiss() dismiss()
} }
} }
} super.onIndexSelected(position)
override fun size(): Int {
return realmData?.size ?: 0
} }
/** /**
@ -70,7 +82,7 @@ class BottomSheetListFragment : BottomSheetFragment(), LiveDataDelegate {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true) LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_list, view?.bottomSheetContainer, true)
val viewManager = LinearLayoutManager(requireContext()) val viewManager = LinearLayoutManager(requireContext())
dataAdapter = LiveDataAdapter(this, LiveDataViewType.BOTTOM_SHEET_DATA) dataAdapter = RowRepresentableAdapter(this, this)
reyclerView.apply { reyclerView.apply {
setHasFixedSize(true) setHasFixedSize(true)

@ -10,17 +10,16 @@ import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.Game import net.pokeranalytics.android.model.realm.Game
import net.pokeranalytics.android.ui.adapter.LimitTypesAdapter import net.pokeranalytics.android.ui.adapter.LimitTypesAdapter
import net.pokeranalytics.android.ui.adapter.components.LiveDataAdapter import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.adapter.components.LiveDataDataSource import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.adapter.components.LiveDataDelegate import net.pokeranalytics.android.ui.view.RowViewType
import net.pokeranalytics.android.ui.adapter.components.LiveDataViewType
import timber.log.Timber import timber.log.Timber
class BottomSheetListGameFragment : BottomSheetFragment(), LiveDataDelegate { class BottomSheetListGameFragment : BottomSheetFragment(), RowRepresentableDataSource, RowRepresentableDelegate {
private var realmData: RealmResults<*>? = null private var realmData: RealmResults<*>? = null
private lateinit var dataAdapter: LiveDataAdapter private lateinit var dataAdapter: RowRepresentableAdapter
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
@ -33,15 +32,33 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveDataDelegate {
dataAdapter.notifyDataSetChanged() dataAdapter.notifyDataSetChanged()
} }
override fun data(position: Int): LiveDataDataSource {
override fun rowRepresentableForPosition(position: Int): RowRepresentable {
realmData?.let {
return it[position] as RowRepresentable
}
return super.rowRepresentableForPosition(position)
}
override fun numberOfRows(): Int {
realmData?.let { realmData?.let {
return it[position] as LiveDataDataSource return it.size
} }
//TODO: Change that return super.numberOfRows()
return Game() }
override fun viewTypeForPosition(position: Int): Int {
return RowViewType.BOTTOM_SHEET_DATA.ordinal
} }
override fun onRowSelected(position: Int) { override fun indexForRow(row: RowRepresentable): Int {
realmData?.let {
return it.indexOf(row)
}
return super.indexForRow(row)
}
override fun onIndexSelected(position: Int) {
realmData?.let { realmData?.let {
val selectedData = it[position] val selectedData = it[position]
selectedData?.let {data -> selectedData?.let {data ->
@ -49,13 +66,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveDataDelegate {
dismiss() dismiss()
} }
} }
} super.onIndexSelected(position)
override fun size(): Int {
Timber.d("Games: ${realmData?.size}")
return realmData?.size ?: 0
} }
/** /**
@ -91,7 +102,7 @@ class BottomSheetListGameFragment : BottomSheetFragment(), LiveDataDelegate {
val viewManager2 = LinearLayoutManager(requireContext()) val viewManager2 = LinearLayoutManager(requireContext())
dataAdapter = LiveDataAdapter(this, LiveDataViewType.BOTTOM_SHEET_DATA) dataAdapter = RowRepresentableAdapter(this, this)
recyclerView2.apply { recyclerView2.apply {
setHasFixedSize(true) setHasFixedSize(true)

Loading…
Cancel
Save