parent
f476c624d7
commit
1388156953
|
@ -229,15 +229,19 @@ class SearchFragment : Fragment(), BackHandler {
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
toolbarView.view.clearFocus()
|
toolbarView.view.clearFocus()
|
||||||
|
// clearing focus makes keyboard hidden after activity is resumed
|
||||||
|
awesomeBarView.isKeyboardDismissedProgrammatically = true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed(): Boolean {
|
override fun onBackPressed(): Boolean {
|
||||||
return when {
|
return when {
|
||||||
qrFeature.onBackPressed() -> {
|
qrFeature.onBackPressed() -> {
|
||||||
view?.searchScanButton?.isChecked = false
|
view?.searchScanButton?.isChecked = false
|
||||||
|
// set to true because keyboard is being dismissed when returning from qr scan
|
||||||
|
awesomeBarView.isKeyboardDismissedProgrammatically = true
|
||||||
toolbarView.view.requestFocus()
|
toolbarView.view.requestFocus()
|
||||||
true
|
|
||||||
}
|
}
|
||||||
|
!awesomeBarView.isKeyboardDismissedProgrammatically -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.core.graphics.drawable.toBitmap
|
import androidx.core.graphics.drawable.toBitmap
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import kotlinx.android.extensions.LayoutContainer
|
import kotlinx.android.extensions.LayoutContainer
|
||||||
import kotlinx.android.synthetic.main.fragment_search.*
|
import kotlinx.android.synthetic.main.fragment_search.*
|
||||||
import mozilla.components.browser.awesomebar.BrowserAwesomeBar
|
import mozilla.components.browser.awesomebar.BrowserAwesomeBar
|
||||||
|
@ -24,6 +25,7 @@ import mozilla.components.feature.awesomebar.provider.SessionSuggestionProvider
|
||||||
import mozilla.components.feature.search.SearchUseCases
|
import mozilla.components.feature.search.SearchUseCases
|
||||||
import mozilla.components.feature.session.SessionUseCases
|
import mozilla.components.feature.session.SessionUseCases
|
||||||
import mozilla.components.feature.tabs.TabsUseCases
|
import mozilla.components.feature.tabs.TabsUseCases
|
||||||
|
import mozilla.components.support.ktx.android.view.hideKeyboard
|
||||||
import org.mozilla.fenix.HomeActivity
|
import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.ext.asActivity
|
import org.mozilla.fenix.ext.asActivity
|
||||||
|
@ -93,6 +95,7 @@ class AwesomeBarView(
|
||||||
private val defaultSearchSuggestionProvider: SearchSuggestionProvider
|
private val defaultSearchSuggestionProvider: SearchSuggestionProvider
|
||||||
private val searchSuggestionProviderMap: MutableMap<SearchEngine, SearchSuggestionProvider>
|
private val searchSuggestionProviderMap: MutableMap<SearchEngine, SearchSuggestionProvider>
|
||||||
private var providersInUse = mutableSetOf<AwesomeBar.SuggestionProvider>()
|
private var providersInUse = mutableSetOf<AwesomeBar.SuggestionProvider>()
|
||||||
|
internal var isKeyboardDismissedProgrammatically: Boolean = false
|
||||||
|
|
||||||
private val loadUrlUseCase = object : SessionUseCases.LoadUrlUseCase {
|
private val loadUrlUseCase = object : SessionUseCases.LoadUrlUseCase {
|
||||||
override fun invoke(url: String, flags: EngineSession.LoadUrlFlags) {
|
override fun invoke(url: String, flags: EngineSession.LoadUrlFlags) {
|
||||||
|
@ -176,6 +179,20 @@ class AwesomeBarView(
|
||||||
searchShortcutsButton.setOnClickListener {
|
searchShortcutsButton.setOnClickListener {
|
||||||
interactor.onSearchShortcutsButtonClicked()
|
interactor.onSearchShortcutsButtonClicked()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val recyclerListener = object : RecyclerView.OnScrollListener() {
|
||||||
|
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
|
||||||
|
when (newState) {
|
||||||
|
RecyclerView.SCROLL_STATE_DRAGGING ->
|
||||||
|
if (!isKeyboardDismissedProgrammatically) {
|
||||||
|
view.hideKeyboard()
|
||||||
|
isKeyboardDismissedProgrammatically = true
|
||||||
|
}
|
||||||
|
RecyclerView.SCROLL_STATE_IDLE -> isKeyboardDismissedProgrammatically = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
view.addOnScrollListener(recyclerListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun update(state: SearchFragmentState) {
|
fun update(state: SearchFragmentState) {
|
||||||
|
|
Loading…
Reference in New Issue