Merge pull request #2604 from gouri-panda/Feature/gouri-panda/fix_exteranl_search

This commit is contained in:
Kelson 2021-03-21 17:07:57 +01:00 committed by GitHub
commit 8b5079020f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -26,11 +26,13 @@ import android.view.MenuItem
import android.view.MenuItem.OnActionExpandListener import android.view.MenuItem.OnActionExpandListener
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.activity.OnBackPressedCallback
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.widget.ContentLoadingProgressBar import androidx.core.widget.ContentLoadingProgressBar
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import kotlinx.android.synthetic.main.fragment_search.searchLoadingIndicator import kotlinx.android.synthetic.main.fragment_search.searchLoadingIndicator
@ -107,6 +109,17 @@ class SearchFragment : BaseFragment() {
lifecycleScope.launchWhenCreated { lifecycleScope.launchWhenCreated {
searchViewModel.effects.collect { it.invokeWith(this@SearchFragment.coreMainActivity) } searchViewModel.effects.collect { it.invokeWith(this@SearchFragment.coreMainActivity) }
} }
handleBackPress()
}
private fun handleBackPress() {
activity?.onBackPressedDispatcher?.addCallback(
viewLifecycleOwner,
object : OnBackPressedCallback(true) {
override fun handleOnBackPressed() {
goBack()
}
})
} }
private fun setupToolbar(view: View) { private fun setupToolbar(view: View) {
@ -122,6 +135,12 @@ class SearchFragment : BaseFragment() {
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
closeKeyboard() closeKeyboard()
activity?.intent?.action = null
}
private fun goBack() {
val readerFragmentResId = (activity as CoreMainActivity).readerFragmentResId
findNavController().popBackStack(readerFragmentResId, false)
} }
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
@ -153,6 +172,7 @@ class SearchFragment : BaseFragment() {
} }
private fun render(state: SearchState) { private fun render(state: SearchState) {
searchView.setQuery(state.searchTerm, false)
searchInTextMenuItem.isVisible = state.searchOrigin == FromWebView searchInTextMenuItem.isVisible = state.searchOrigin == FromWebView
searchInTextMenuItem.isEnabled = state.searchTerm.isNotBlank() searchInTextMenuItem.isEnabled = state.searchTerm.isNotBlank()
searchLoadingIndicator.isShowing(state.isLoading) searchLoadingIndicator.isShowing(state.isLoading)