diff --git a/app/src/main/java/com/github/libretube/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/activities/MainActivity.kt index 2c3885e1a..b6daa86c9 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -202,7 +202,10 @@ class MainActivity : BaseActivity() { ) } - private fun removeSearchFocus() { + /** + * Remove the focus of the search view in the toolbar + */ + fun removeSearchFocus() { searchView.setQuery("", false) searchView.clearFocus() searchView.onActionViewCollapsed() diff --git a/app/src/main/java/com/github/libretube/fragments/SearchFragment.kt b/app/src/main/java/com/github/libretube/fragments/SearchFragment.kt index b1ab2bfdd..40ec66cb5 100644 --- a/app/src/main/java/com/github/libretube/fragments/SearchFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/SearchFragment.kt @@ -7,7 +7,9 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager +import com.github.libretube.R import com.github.libretube.activities.MainActivity import com.github.libretube.adapters.SearchHistoryAdapter import com.github.libretube.adapters.SearchSuggestionsAdapter @@ -18,6 +20,7 @@ import com.github.libretube.extensions.BaseFragment import com.github.libretube.extensions.TAG import com.github.libretube.extensions.await import com.github.libretube.models.SearchViewModel +import kotlinx.android.synthetic.main.activity_main.toolbar import retrofit2.HttpException import java.io.IOException @@ -109,4 +112,14 @@ class SearchFragment() : BaseFragment() { binding.historyEmpty.visibility = View.VISIBLE } } + + override fun onStop() { + if (findNavController().currentDestination?.id != R.id.searchResultFragment) { + // remove the search focus + (activity as MainActivity) + .toolbar.menu + .findItem(R.id.action_search).collapseActionView() + } + super.onStop() + } } diff --git a/app/src/main/java/com/github/libretube/fragments/SearchResultFragment.kt b/app/src/main/java/com/github/libretube/fragments/SearchResultFragment.kt index c088720ea..08bc72e09 100644 --- a/app/src/main/java/com/github/libretube/fragments/SearchResultFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/SearchResultFragment.kt @@ -6,8 +6,10 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.lifecycle.lifecycleScope +import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.LinearLayoutManager import com.github.libretube.R +import com.github.libretube.activities.MainActivity import com.github.libretube.adapters.SearchAdapter import com.github.libretube.api.RetrofitInstance import com.github.libretube.databinding.FragmentSearchResultBinding @@ -18,6 +20,7 @@ import com.github.libretube.extensions.TAG import com.github.libretube.preferences.PreferenceHelper import com.github.libretube.preferences.PreferenceKeys import com.github.libretube.util.hideKeyboard +import kotlinx.android.synthetic.main.activity_main.toolbar import retrofit2.HttpException import java.io.IOException @@ -141,4 +144,14 @@ class SearchResultFragment : BaseFragment() { ) } } + + override fun onStop() { + if (findNavController().currentDestination?.id != R.id.searchFragment) { + // remove the search focus + (activity as MainActivity) + .toolbar.menu + .findItem(R.id.action_search).collapseActionView() + } + super.onStop() + } }