Skip to content

Commit 74c589f

Browse files
committed
fix #12996 filter button disappear
1 parent a6808a7 commit 74c589f

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

app/src/main/java/org/ole/planet/myplanet/ui/resources/ResourcesFragment.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -394,7 +394,9 @@ class ResourcesFragment : BaseRecyclerFragment<RealmMyLibrary?>(), OnLibraryItem
394394
}
395395

396396
private fun checkList(listSize: Int = if (::adapterLibrary.isInitialized) adapterLibrary.getLibraryList().size else 0) {
397-
if (listSize == 0) {
397+
val hasAnyLibraryData = allLibraryItems.isNotEmpty()
398+
399+
if (!hasAnyLibraryData && listSize == 0) {
398400
selectAll.visibility = View.GONE
399401
etSearch.visibility = View.GONE
400402
tvAddToLib.visibility = View.GONE
@@ -408,9 +410,16 @@ class ResourcesFragment : BaseRecyclerFragment<RealmMyLibrary?>(), OnLibraryItem
408410
etSearch.visibility = View.VISIBLE
409411
binding.btnCollections.visibility = View.VISIBLE
410412
filter.visibility = View.VISIBLE
413+
clearTags.visibility = if (hasActiveFilters()) View.VISIBLE else View.GONE
411414
}
412415
}
413416

417+
private fun hasActiveFilters(): Boolean {
418+
val hasSearchText = etSearch.text?.toString()?.trim()?.isNotEmpty() == true
419+
val hasTagFilter = ::searchTags.isInitialized && searchTags.isNotEmpty()
420+
return hasSearchText || hasTagFilter || subjects.isNotEmpty() || languages.isNotEmpty() || mediums.isNotEmpty() || levels.isNotEmpty()
421+
}
422+
414423
private fun initArrays() {
415424
subjects = HashSet()
416425
languages = HashSet()
@@ -569,9 +578,8 @@ class ResourcesFragment : BaseRecyclerFragment<RealmMyLibrary?>(), OnLibraryItem
569578
}
570579

571580
override suspend fun getData(): Map<String, Set<String>> {
572-
val currentIds = adapterLibrary.getLibraryList().mapNotNull { it.id }.toSet()
573-
val libraryList = allLibraryItems.filter { it.id in currentIds }
574-
return resourcesRepository.getFilterFacets(libraryList)
581+
// Keep facet options stable so applying one filter does not hide other available options.
582+
return resourcesRepository.getFilterFacets(allLibraryItems)
575583
}
576584

577585
override fun getSelectedFilter(): Map<String, Set<String>> {

0 commit comments

Comments
 (0)