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 f0638976..106831ba 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 @@ -93,6 +93,12 @@ open class Filter : RealmObject() { } } + fun remove(filterCategoryRow: FilterCategoryRow) { + val sections = filterCategoryRow.filterSectionRows.map { it.name } + val savedSections = filterConditions.filter { sections.contains(it.sectionName) } + this.filterConditions.removeAll(savedSections) + } + fun countBy(filterCategoryRow: FilterCategoryRow): Int { val sections = filterCategoryRow.filterSectionRows.map { it.name } println("list of sections $sections") diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt index 7dbc53a1..80c89ba8 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FilterDetailsFragment.kt @@ -38,14 +38,14 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent lateinit var parentActivity: PokerAnalyticsActivity lateinit var rowRepresentableAdapter: RowRepresentableAdapter + private lateinit var primaryKey: String + private lateinit var filterCategoryRow: FilterCategoryRow private var currentFilter: Filter? = null private var rows: ArrayList = ArrayList() private var rowsForFilterSubcategoryRow: HashMap> = HashMap() - private var primaryKey: String? = null private var filterMenu: Menu? = null - private var filterCategoryRow: FilterCategoryRow? = null private val selectedRows = ArrayList() private var isUpdating = false private var shouldOpenKeyboard = true @@ -174,17 +174,14 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent */ private fun initData() { - primaryKey?.let { - currentFilter = Filter.getFilterBydId(getRealm(), it) - } + currentFilter = Filter.getFilterBydId(getRealm(), primaryKey) - filterCategoryRow?.let { - this.appBar.toolbar.title = it.localizedTitle(requireContext()) + this.appBar.toolbar.title = filterCategoryRow.localizedTitle(requireContext()) this.rows.clear() this.rowsForFilterSubcategoryRow.clear() - this.rows.addAll(it.filterElements) + this.rows.addAll(filterCategoryRow.filterElements) this.rows.forEach { element -> if (element is QueryCondition && currentFilter?.contains(element) == true) { @@ -195,7 +192,6 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent this.rowRepresentableAdapter = RowRepresentableAdapter(this, this) this.recyclerView.adapter = rowRepresentableAdapter - } } /** @@ -238,6 +234,7 @@ open class FilterDetailsFragment : PokerAnalyticsFragment(), StaticRowRepresent val realm = getRealm() realm.beginTransaction() + currentFilter?.remove(filterCategoryRow) currentFilter?.createOrUpdateFilterConditions(selectedRows) realm.commitTransaction()