mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-08-03 10:46:53 -04:00
Merge pull request #2604 from gouri-panda/Feature/gouri-panda/fix_exteranl_search
This commit is contained in:
commit
8b5079020f
@ -26,11 +26,13 @@ import android.view.MenuItem
|
||||
import android.view.MenuItem.OnActionExpandListener
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.ContentLoadingProgressBar
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kotlinx.android.synthetic.main.fragment_search.searchLoadingIndicator
|
||||
@ -107,6 +109,17 @@ class SearchFragment : BaseFragment() {
|
||||
lifecycleScope.launchWhenCreated {
|
||||
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) {
|
||||
@ -122,6 +135,12 @@ class SearchFragment : BaseFragment() {
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
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) {
|
||||
@ -153,6 +172,7 @@ class SearchFragment : BaseFragment() {
|
||||
}
|
||||
|
||||
private fun render(state: SearchState) {
|
||||
searchView.setQuery(state.searchTerm, false)
|
||||
searchInTextMenuItem.isVisible = state.searchOrigin == FromWebView
|
||||
searchInTextMenuItem.isEnabled = state.searchTerm.isNotBlank()
|
||||
searchLoadingIndicator.isShowing(state.isLoading)
|
||||
|
Loading…
x
Reference in New Issue
Block a user