From 25a0657609682a3bf5b0d2028bdab500b0a80a6f Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Sun, 14 Mar 2021 02:49:40 +0530 Subject: [PATCH 1/6] #2602 Search text now appears in the search field --- .../java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index 79951beeb..e75767c5f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -153,6 +153,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) From 327dff47207ba31eaf9d48dd2fd871118a08de48 Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Sun, 14 Mar 2021 02:51:57 +0530 Subject: [PATCH 2/6] #2601 fixed partially --- .../java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index e75767c5f..acf472380 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -122,6 +122,7 @@ class SearchFragment : BaseFragment() { override fun onDestroyView() { super.onDestroyView() closeKeyboard() + activity?.intent?.action = null } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { From ac3da8b7bfde8e99a3875fef6072d57975377ae0 Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Tue, 16 Mar 2021 02:41:23 +0530 Subject: [PATCH 3/6] removed back stack entry --- .../org/kiwix/kiwixmobile/core/search/SearchFragment.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index acf472380..a073d0e95 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -41,6 +41,7 @@ import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent +import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack import org.kiwix.kiwixmobile.core.extensions.closeKeyboard import org.kiwix.kiwixmobile.core.extensions.coreMainActivity import org.kiwix.kiwixmobile.core.extensions.viewModel @@ -123,6 +124,11 @@ class SearchFragment : BaseFragment() { super.onDestroyView() closeKeyboard() activity?.intent?.action = null + goBack() + } + + private fun goBack() { + activity?.popNavigationBackstack() } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { From 1b50f8b82f0f5b1968b26c201fd1d91d79d47df0 Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Tue, 16 Mar 2021 02:48:56 +0530 Subject: [PATCH 4/6] added proper back stack entry --- .../kiwix/kiwixmobile/core/search/SearchFragment.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index a073d0e95..be464b0c3 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -19,6 +19,7 @@ package org.kiwix.kiwixmobile.core.search import android.content.Intent import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater @@ -26,11 +27,13 @@ import android.view.MenuItem import android.view.MenuItem.OnActionExpandListener import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AppCompatActivity 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 @@ -40,6 +43,7 @@ import kotlinx.coroutines.flow.collect import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment +import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack import org.kiwix.kiwixmobile.core.extensions.closeKeyboard @@ -66,7 +70,7 @@ import javax.inject.Inject const val NAV_ARG_SEARCH_STRING = "searchString" -class SearchFragment : BaseFragment() { +class SearchFragment : BaseFragment(), FragmentActivityExtensions { @Inject lateinit var viewModelFactory: ViewModelProvider.Factory @@ -128,11 +132,12 @@ class SearchFragment : BaseFragment() { } private fun goBack() { - activity?.popNavigationBackstack() + val readerFragmentResId = (activity as CoreMainActivity).readerFragmentResId + findNavController().popBackStack(readerFragmentResId, false) } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - super.onCreateOptionsMenu(menu, inflater) + super.onCreateOptionsMenu(menu, inflater) inflater.inflate(R.menu.menu_search, menu) val searchMenuItem = menu.findItem(R.id.menu_search) searchMenuItem.expandActionView() From ccd8d0384432ce3be234f733b91faf79c74a18b4 Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Wed, 17 Mar 2021 13:20:42 +0530 Subject: [PATCH 5/6] Fixed #2601 and #2603 --- .../kiwixmobile/core/search/SearchFragment.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index be464b0c3..c1013151f 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -19,7 +19,6 @@ package org.kiwix.kiwixmobile.core.search import android.content.Intent import android.os.Bundle -import android.util.Log import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater @@ -27,7 +26,7 @@ import android.view.MenuItem import android.view.MenuItem.OnActionExpandListener import android.view.View import android.view.ViewGroup -import androidx.appcompat.app.AppCompatActivity +import androidx.activity.OnBackPressedCallback import androidx.appcompat.widget.SearchView import androidx.core.view.isVisible import androidx.core.widget.ContentLoadingProgressBar @@ -45,7 +44,6 @@ import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent -import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.popNavigationBackstack import org.kiwix.kiwixmobile.core.extensions.closeKeyboard import org.kiwix.kiwixmobile.core.extensions.coreMainActivity import org.kiwix.kiwixmobile.core.extensions.viewModel @@ -112,6 +110,17 @@ class SearchFragment : BaseFragment(), FragmentActivityExtensions { 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) { @@ -128,7 +137,6 @@ class SearchFragment : BaseFragment(), FragmentActivityExtensions { super.onDestroyView() closeKeyboard() activity?.intent?.action = null - goBack() } private fun goBack() { From 99cdd59fc60ed745f395118726bd7a89ce3ec111 Mon Sep 17 00:00:00 2001 From: gouri-panda Date: Wed, 17 Mar 2021 13:23:38 +0530 Subject: [PATCH 6/6] cleanup code --- .../java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt index c1013151f..92aa0f328 100644 --- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt +++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchFragment.kt @@ -42,7 +42,6 @@ import kotlinx.coroutines.flow.collect import org.kiwix.kiwixmobile.core.R import org.kiwix.kiwixmobile.core.base.BaseActivity import org.kiwix.kiwixmobile.core.base.BaseFragment -import org.kiwix.kiwixmobile.core.base.FragmentActivityExtensions import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.cachedComponent import org.kiwix.kiwixmobile.core.extensions.closeKeyboard import org.kiwix.kiwixmobile.core.extensions.coreMainActivity @@ -68,7 +67,7 @@ import javax.inject.Inject const val NAV_ARG_SEARCH_STRING = "searchString" -class SearchFragment : BaseFragment(), FragmentActivityExtensions { +class SearchFragment : BaseFragment() { @Inject lateinit var viewModelFactory: ViewModelProvider.Factory @@ -145,7 +144,7 @@ class SearchFragment : BaseFragment(), FragmentActivityExtensions { } override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) { - super.onCreateOptionsMenu(menu, inflater) + super.onCreateOptionsMenu(menu, inflater) inflater.inflate(R.menu.menu_search, menu) val searchMenuItem = menu.findItem(R.id.menu_search) searchMenuItem.expandActionView()