From 14210452bfd427198a167976f1662dd32d9e6a17 Mon Sep 17 00:00:00 2001 From: Laurent Date: Sat, 29 Aug 2020 11:05:21 +0200 Subject: [PATCH] The filter name was not refreshed after a name update + cleanup --- .../android/model/realm/Filter.kt | 14 ++---- .../ui/modules/filter/FiltersListFragment.kt | 50 ++----------------- 2 files changed, 8 insertions(+), 56 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt index 1d53b89d..f23db5bd 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Filter.kt @@ -37,7 +37,6 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta val filter = Filter() filter.filterableTypeUniqueIdentifier = filterableTypeUniqueIdentifier return filter - //return realm.copyToRealm(filter) } inline fun queryOn(realm: Realm, query: Query, sortField: String? = null): RealmResults { @@ -46,7 +45,6 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta sortField?.let { realmQuery = realmQuery.sort(it) } -// val desc = realmQuery.description return realmQuery.findAll() } } @@ -153,10 +151,6 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta inline fun query(firstField: String? = null, vararg remainingFields: String): RealmQuery { val realmQuery = realm.where() -// if (firstField != null && secondField != null) { -// return this.query.queryWith(realmQuery).distinct(firstField, secondField) -// } - if (firstField != null) { return this.query.queryWith(realmQuery).distinct(firstField, *remainingFields) } @@ -205,11 +199,9 @@ open class Filter : RealmObject(), RowRepresentable, Editable, Deletable, Counta } override fun updateValue(value: Any?, row: RowRepresentable) { - realm.executeTransaction { - val newName = value as String? ?: "" - if (newName.isNotEmpty()) { - name = newName - } + val newName = value as String? ?: "" + if (newName.isNotEmpty()) { + name = newName } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersListFragment.kt index 45b9aaac..9ab642a3 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersListFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersListFragment.kt @@ -13,52 +13,14 @@ import net.pokeranalytics.android.util.Preferences open class FiltersListFragment : DataListFragment() { -// private var identifiableClass: Class = Filter::class.java -// private var dataType: LiveData = LiveData.FILTER -// private lateinit var items: RealmResults -// -// /** -// * Set fragment data -// */ -// override fun setData(dataType: Int) { -// super.setData(dataType) -// -// this.dataType = LiveData.FILTER -// this.identifiableClass = Filter::class.java -// setToolbarTitle(this.dataType.pluralLocalizedTitle(requireContext())) -// this.items = this.retrieveItems(getRealm()) as RealmResults -// } -// -// override fun rowRepresentableForPosition(position: Int): RowRepresentable? { -// Timber.d("rowRepresentableForPosition: ${this.items[position] as RowRepresentable}") -// return this.items[position] as RowRepresentable -// } -// -// override fun numberOfRows(): Int { -// return this.items.size -// } -// -// override fun adapterRows(): List? { -// return items -// } -// -// override fun viewTypeForPosition(position: Int): Int { -// val viewType = (this.items[position] as RowRepresentable).viewType -// return if (viewType != -1) viewType else RowViewType.DATA.ordinal -// } -// -// override fun editDescriptors(row: RowRepresentable): List? { -// return when (row) { -// is Filter -> row.editingDescriptors(mapOf("defaultValue" to row.name)) -// else -> super.editDescriptors(row) -// } -// } - override fun onRowValueChanged(value: Any?, row: RowRepresentable) { when (row) { is Filter -> { - row.updateValue(value, row) - dataListAdapter.refreshRow(row) + getRealm().executeTransaction { + row.updateValue(value, row) + } + val index = this.model.items.indexOf(row) + this.dataListAdapter.notifyItemChanged(index) updateFilterUIIfNecessary(requireContext(), row.id) } else -> super.onRowValueChanged(value, row) @@ -94,8 +56,6 @@ open class FiltersListFragment : DataListFragment() { } else -> { super.onRowSelected(position, row, tag) -// val identifier = (row as Identifiable).id -// EditableDataActivity.newInstanceForResult(this, this.dataType, identifier, REQUEST_CODE_DETAILS) } } }