diff --git a/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt b/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt index 964a9b26..608489c5 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/Criteria.kt @@ -68,7 +68,6 @@ sealed class Criteria(override var uniqueIdentifier: Int) : IntIdentifiable, Row realm.findById(CustomField::class.java, this.customFieldId)?.entries?.forEach { objects.add(QueryCondition.CustomFieldListQuery(it)) } - objects.sort() realm.close() return objects.map { Query(it) } } 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 19378aea..d1007042 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 @@ -77,7 +77,7 @@ open class Filter : RealmObject(), RowRepresentable, RowUpdatable, Deletable, Us var filterConditions: RealmList = RealmList() private set - private var filterableTypeUniqueIdentifier: Int? = null + var filterableTypeUniqueIdentifier: Int? = null val filterableType: FilterableType get() { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/data/CustomFieldDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/data/CustomFieldDataFragment.kt index 9da74881..3897ac16 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/data/CustomFieldDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/data/CustomFieldDataFragment.kt @@ -133,7 +133,7 @@ class CustomFieldDataFragment : EditableDataFragment(), StaticRowRepresentableDa tag: Int ): CharSequence { return when (row) { - SimpleRow.NAME -> if (customField.name.isNotEmpty()) customField.name else NULL_TEXT + SimpleRow.NAME -> customField.name.ifEmpty { NULL_TEXT } else -> super.charSequenceForRow(row, context, 0) } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsFragment.kt index c438deb8..cfef89bd 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsFragment.kt @@ -10,7 +10,6 @@ import net.pokeranalytics.android.R import net.pokeranalytics.android.databinding.FragmentFilterDetailsBinding import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.filter.QueryCondition -import net.pokeranalytics.android.model.realm.Filter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.fragment.components.RealmFragment @@ -18,7 +17,6 @@ import net.pokeranalytics.android.ui.helpers.DateTimePickerManager import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType import net.pokeranalytics.android.ui.view.rows.* -import net.pokeranalytics.android.util.extensions.findById import timber.log.Timber import java.util.* @@ -92,7 +90,7 @@ open class FilterDetailsFragment : RealmFragment(), RowRepresentableDelegate { this.arguments?.let { bundle -> - val filter = this.activityModel.currentFilter ?: throw PAIllegalStateException("Filter is null") + val filter = this.activityModel.currentFilter val category = bundle.getInt(BundleKey.DATA_TYPE.value) val categoryRow = FilterCategoryRow.values()[category] Timber.d("Category row = $categoryRow") @@ -102,7 +100,7 @@ open class FilterDetailsFragment : RealmFragment(), RowRepresentableDelegate { } ?: throw PAIllegalStateException("Missing bundle") - Timber.d(">> Filter = ${this.activityModel.currentFilter}") +// Timber.d(">> Filter = ${this.activityModel.currentFilter}") Timber.d("selectedRow = ${this.activityModel.selectedCategoryRow}") this.binding.toolbar.title = this.activityModel.selectedCategoryRow?.localizedTitle(requireContext()) @@ -232,22 +230,22 @@ open class FilterDetailsFragment : RealmFragment(), RowRepresentableDelegate { */ private fun saveData() { -// val currentFilter = this.activityModel.currentFilter + val filter = this.activityModel.currentFilter - this.activityModel.currentFilter?.id?.let { filterId -> +// this.activityModel.currentFilter?.id?.let { filterId -> this.activityModel.selectedCategoryRow?.let { category -> - getRealm().executeTransactionAsync { asyncRealm -> - asyncRealm.findById(filterId)?.let { filter -> +// getRealm().executeTransactionAsync { asyncRealm -> +// asyncRealm.findById(filterId)?.let { filter -> filter.remove(category) val validConditions = this.model.selectedRows.filter { it.queryCondition != null } filter.createOrUpdateFilterConditions(validConditions) } - } - } +// } +// } - } +// } // //TODO: Save currentFilter details data // Timber.d("Save data for queryWith: ${currentFilter?.id}") diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsViewModel.kt index 2c39c36c..fcca1b00 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterDetailsViewModel.kt @@ -31,7 +31,7 @@ class FilterDetailsViewModel(categoryRow: FilterCategoryRow, var filter: Filter) this.defineSelectedItems() } - override fun adapterRows(): List? { + override fun adapterRows(): List { return this.rows } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterViewModel.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterViewModel.kt index b69a874f..21b2b37d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterViewModel.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FilterViewModel.kt @@ -12,7 +12,7 @@ import net.pokeranalytics.android.util.extensions.findById class FilterViewModel : ViewModel(), StaticRowRepresentableDataSource { - var currentFilter: Filter? = null + var currentFilter: Filter = Filter() // Main var filterableType: FilterableType? = null @@ -27,26 +27,27 @@ class FilterViewModel : ViewModel(), StaticRowRepresentableDataSource { fun init(realm: Realm) { - if (this.currentFilter != null) { // can be called twice and we don't want that - return - } +// if (this.currentFilter != null) { // can be called twice and we don't want that +// return +// } this.primaryKey?.let { val filter = realm.findById(it) ?: throw PAIllegalStateException("Can't find filter with id=$it") this.currentFilter = realm.copyFromRealm(filter) this.isUpdating = true } ?: run { - this.filterableType?.uniqueIdentifier?.let { - this.currentFilter = Filter.newInstance(it) //realm.copyFromRealm(Filter.newInstanceForResult(realm, this.filterableType.ordinal)) - } + this.currentFilter.filterableTypeUniqueIdentifier = this.filterableType?.uniqueIdentifier +// this.filterableType?.uniqueIdentifier?.let { +// this.currentFilter = Filter.newInstance(it) //realm.copyFromRealm(Filter.newInstanceForResult(realm, this.filterableType.ordinal)) +// } } // Create a copy if the user cancels the updates - this.currentFilter?.let { - if (it.isValid && it.isManaged) { - this.filterCopy = realm.copyFromRealm(it) - } - } +// this.currentFilter?.let { +// if (it.isValid && it.isManaged) { +// this.filterCopy = realm.copyFromRealm(it) +// } +// } this.categoryRows.clear() @@ -64,7 +65,7 @@ class FilterViewModel : ViewModel(), StaticRowRepresentableDataSource { override fun charSequenceForRow(row: RowRepresentable, context: Context, tag: Int): CharSequence { // Return the number of selected filters for this category - val count = this.currentFilter?.countBy(row as FilterCategoryRow) ?: 0 + val count = this.currentFilter.countBy(row as FilterCategoryRow) return if (count > 0) count.toString() else "" } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersFragment.kt index 1a92e177..30765b0d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/filter/FiltersFragment.kt @@ -104,7 +104,7 @@ open class FiltersFragment : RealmFragment(), RowRepresentableDelegate { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { - R.id.save -> validateUpdates() + R.id.save -> save() } return true } @@ -155,9 +155,7 @@ open class FiltersFragment : RealmFragment(), RowRepresentableDelegate { val categoryRow = row as FilterCategoryRow this.model.selectedCategoryRow = categoryRow - this.model.currentFilter?.let { _ -> - (activity as FiltersActivity).showDetailsFragment(categoryRow) - } + (activity as FiltersActivity).showDetailsFragment(categoryRow) } /** @@ -216,18 +214,15 @@ open class FiltersFragment : RealmFragment(), RowRepresentableDelegate { /** * Validate the updates of the queryWith */ - private fun validateUpdates() { - val currentFilter = this.model.currentFilter + private fun save() { + val filter = this.model.currentFilter - getRealm().executeTransactionAsync { realm -> - currentFilter?.let { filter -> - filter.name = filter.query.getName(requireContext()) - realm.copyToRealmOrUpdate(filter) - } - } + getRealm().executeTransactionAsync { asyncRealm -> + filter.name = filter.query.getName(requireContext()) + asyncRealm.copyToRealmOrUpdate(filter) + } - val filterId = currentFilter?.id ?: "" - finishActivityWithResult(filterId) + finishActivityWithResult(filter.id) } /**