diff --git a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt index 6dcd26b0f..8c93470bf 100644 --- a/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/remotelist/ui/RemoteListFragment.kt @@ -6,6 +6,7 @@ import android.view.MenuInflater import android.view.MenuItem import android.view.View import androidx.appcompat.view.ActionMode +import androidx.appcompat.widget.SearchView import androidx.core.view.MenuProvider import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf @@ -13,6 +14,7 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.list.ui.MangaListFragment import org.koitharu.kotatsu.list.ui.filter.FilterBottomSheet import org.koitharu.kotatsu.parsers.model.MangaSource +import org.koitharu.kotatsu.search.ui.SearchActivity import org.koitharu.kotatsu.settings.SettingsActivity import org.koitharu.kotatsu.utils.ext.addMenuProvider import org.koitharu.kotatsu.utils.ext.serializableArgument @@ -48,10 +50,17 @@ class RemoteListFragment : MangaListFragment() { viewModel.resetFilter() } - private inner class RemoteListMenuProvider: MenuProvider { + private inner class RemoteListMenuProvider : MenuProvider, SearchView.OnQueryTextListener, + MenuItem.OnActionExpandListener { override fun onCreateMenu(menu: Menu, menuInflater: MenuInflater) { menuInflater.inflate(R.menu.opt_list_remote, menu) + val searchMenuItem = menu.findItem(R.id.action_search) + searchMenuItem.setOnActionExpandListener(this) + val searchView = searchMenuItem.actionView as SearchView + searchView.setOnQueryTextListener(this) + searchView.setIconifiedByDefault(false) + searchView.queryHint = searchMenuItem.title } override fun onMenuItemSelected(menuItem: MenuItem): Boolean = when (menuItem.itemId) { @@ -65,6 +74,31 @@ class RemoteListFragment : MangaListFragment() { } else -> false } + + override fun onQueryTextSubmit(query: String?): Boolean { + if (query.isNullOrEmpty()) { + return false + } + val intent = SearchActivity.newIntent( + context = this@RemoteListFragment.context ?: return false, + source = source, + query = query, + ) + startActivity(intent) + return true + } + + override fun onQueryTextChange(newText: String?): Boolean = false + + override fun onMenuItemActionExpand(item: MenuItem?): Boolean { + return true + } + + override fun onMenuItemActionCollapse(item: MenuItem): Boolean { + val searchView = (item.actionView as? SearchView) ?: return false + searchView.setQuery("", false) + return true + } } companion object { diff --git a/app/src/main/res/menu/opt_list_remote.xml b/app/src/main/res/menu/opt_list_remote.xml index 5df3276f1..82554a1e2 100644 --- a/app/src/main/res/menu/opt_list_remote.xml +++ b/app/src/main/res/menu/opt_list_remote.xml @@ -3,6 +3,13 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> + +