diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt b/app/src/main/kotlin/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt index 90a7bb5aa..2bf15ebb2 100644 --- a/app/src/main/kotlin/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt +++ b/app/src/main/kotlin/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt @@ -11,6 +11,8 @@ import androidx.core.view.MenuProvider import androidx.core.view.inputmethod.EditorInfoCompat import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint +import kotlinx.coroutines.flow.distinctUntilChangedBy +import kotlinx.coroutines.flow.drop import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.ui.list.ListSelectionController import org.koitharu.kotatsu.core.ui.util.MenuInvalidator @@ -44,6 +46,11 @@ class RemoteListFragment : MangaListFragment(), FilterOwner { viewModel.onOpenManga.observeEvent(viewLifecycleOwner) { startActivity(DetailsActivity.newIntent(binding.root.context, it)) } + viewModel.header.distinctUntilChangedBy { it.isFilterApplied } + .drop(1) + .observe(viewLifecycleOwner) { + activity?.invalidateMenu() + } } override fun onScrolledToEnd() { @@ -94,12 +101,18 @@ class RemoteListFragment : MangaListFragment(), FilterOwner { true } + R.id.action_filter_reset -> { + viewModel.resetFilter() + true + } + else -> false } override fun onPrepareMenu(menu: Menu) { super.onPrepareMenu(menu) menu.findItem(R.id.action_random)?.isEnabled = !viewModel.isRandomLoading.value + menu.findItem(R.id.action_filter_reset)?.isVisible = viewModel.header.value.isFilterApplied } override fun onQueryTextSubmit(query: String?): Boolean { diff --git a/app/src/main/res/menu/opt_list_remote.xml b/app/src/main/res/menu/opt_list_remote.xml index 5dff03a7c..768334fea 100644 --- a/app/src/main/res/menu/opt_list_remote.xml +++ b/app/src/main/res/menu/opt_list_remote.xml @@ -1,7 +1,8 @@ + xmlns:app="http://schemas.android.com/apk/res-auto" + xmlns:tools="http://schemas.android.com/tools"> + +