@@ -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