diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 29d1e601..0d8cf486 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -25,7 +25,7 @@
android:name=".ui.activity.NewSessionActivity"
android:launchMode="singleTop"/>
-
+
var sortingFieldName: String
var sorting: Sort
- fun clazz(): Class<*>
+ fun clazz(): Class
}
class SectionRow(stringRes: Int) : DynamicRowInterface {
@@ -86,19 +86,13 @@ enum class SettingRow(val resId: Int) : DynamicRowInterface, DynamicValues {
override var bottomSheetType: BottomSheetType = BottomSheetType.NONE
override fun items(realm: Realm): RealmResults<*> {
- return when (this) {
- BANKROLL -> realm.where(Bankroll::class.java).findAll().sort(this.sortingFieldName, this.sorting)
- GAME-> realm.where(Game::class.java).findAll().sort(this.sortingFieldName, this.sorting)
- LOCATION -> realm.where(Location::class.java).findAll().sort(this.sortingFieldName, this.sorting)
- TOURNAMENT_TYPE -> realm.where(TournamentFeature::class.java).findAll().sort(this.sortingFieldName, this.sorting)
- TRANSACTION_TYPE -> realm.where(TransactionType::class.java).findAll().sort(this.sortingFieldName, this.sorting)
- }
+ return realm.where(this.clazz()).findAll().sort(this.sortingFieldName, this.sorting)
}
override var sortingFieldName: String = "name"
override var sorting: Sort = Sort.DESCENDING
- override fun clazz(): Class<*> {
+ override fun clazz(): Class {
return when (this) {
BANKROLL -> Bankroll::class.java
GAME -> Game::class.java
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
index a60055ac..986ef2a5 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
@@ -43,12 +43,10 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback {
private fun initUI() {
val viewManager = LinearLayoutManager(requireContext())
- val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
recyclerView.apply {
setHasFixedSize(true)
layoutManager = viewManager
- adapter = dynamicListAdapter
}
}
@@ -58,20 +56,21 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback {
fun setData(dataType: Int, primaryKey: String?) {
this.dataType = SettingRow.values()[dataType]
val realm = Realm.getDefaultInstance()
+ var _item : RealmObject? = null
primaryKey?.let {
- when (this.dataType) {
- SettingRow.BANKROLL -> realm.where(Bankroll::class.java).equalTo("id", it).findFirst()
- SettingRow.GAME -> realm.where(Game::class.java).equalTo("id", it).findFirst()
- SettingRow.LOCATION -> realm.where(Location::class.java).equalTo("id", it).findFirst()
- SettingRow.TOURNAMENT_TYPE -> realm.where(TournamentFeature::class.java).equalTo("id", it).findFirst()
- SettingRow.TRANSACTION_TYPE-> realm.where(TransactionType::class.java).equalTo("id", it).findFirst()
- }?.let {
- this.item = realm.copyFromRealm(it)
+ val t = realm.where(this.dataType.clazz()).equalTo("id", it).findFirst()
+ t?.let {
+ _item = t
}
}
- if (this.item == null) {
- this.item = realm.createObject(Bankroll)
- }
+ _item?.let {
+ this.item = it
+ } ?: run {
+ this.item = realm.createObject(this.dataType.clazz())
+ }
+
+ val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
+ this.recyclerView.adapter = dynamicListAdapter
}
}
\ No newline at end of file