diff --git a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt
index 60af3cc2c..dcb0feea3 100644
--- a/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt
+++ b/app/src/main/java/org/mozilla/fenix/search/SearchFragment.kt
@@ -30,6 +30,7 @@ import mozilla.components.feature.qr.QrFeature
import mozilla.components.lib.state.ext.consumeFrom
import mozilla.components.support.base.feature.UserInteractionHandler
import mozilla.components.support.base.feature.ViewBoundFeatureWrapper
+import mozilla.components.support.ktx.android.content.getColorFromAttr
import mozilla.components.support.ktx.android.content.hasCamera
import mozilla.components.support.ktx.android.content.isPermissionGranted
import mozilla.components.ui.autocomplete.InlineAutocompleteEditText
@@ -116,7 +117,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
searchController
)
- awesomeBarView = AwesomeBarView(view.search_layout, searchInteractor)
+ awesomeBarView = AwesomeBarView(view.scrollable_area, searchInteractor)
toolbarView = ToolbarView(
view.toolbar_component_wrapper,
@@ -194,6 +195,10 @@ class SearchFragment : Fragment(), UserInteractionHandler {
qrFeature.get()?.scan(R.id.container)
}
+ view.search_shortcuts_button.setOnClickListener {
+ searchInteractor.onSearchShortcutsButtonClicked()
+ }
+
val stubListener = ViewStub.OnInflateListener { _, inflated ->
inflated.learn_more.setOnClickListener {
(activity as HomeActivity)
@@ -243,6 +248,7 @@ class SearchFragment : Fragment(), UserInteractionHandler {
consumeFrom(searchStore) {
awesomeBarView.update(it)
+ updateSearchShortcutsIcon(it)
toolbarView.update(it)
updateSearchWithLabel(it)
updateClipboardSuggestion(it, requireContext().components.clipboardHandler.url)
@@ -351,6 +357,18 @@ class SearchFragment : Fragment(), UserInteractionHandler {
}
}
+ private fun updateSearchShortcutsIcon(searchState: SearchFragmentState) {
+ view?.apply {
+ val showShortcuts = searchState.showSearchShortcuts
+ search_shortcuts_button.isChecked = showShortcuts
+
+ val color = if (showShortcuts) R.attr.contrastText else R.attr.primaryText
+ search_shortcuts_button.compoundDrawables[0]?.setTint(
+ requireContext().getColorFromAttr(color)
+ )
+ }
+ }
+
companion object {
private const val SHARED_TRANSITION_MS = 250L
private const val REQUEST_CODE_CAMERA_PERMISSIONS = 1
diff --git a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt
index fbfd63bcf..95b625aa6 100644
--- a/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt
+++ b/app/src/main/java/org/mozilla/fenix/search/awesomebar/AwesomeBarView.kt
@@ -192,9 +192,6 @@ class AwesomeBarView(
)
searchSuggestionProviderMap = HashMap()
- search_shortcuts_button.setOnClickListener {
- interactor.onSearchShortcutsButtonClicked()
- }
val recyclerListener = object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
@@ -215,7 +212,6 @@ class AwesomeBarView(
}
fun update(state: SearchFragmentState) {
- updateSearchShortcutsIcon(state)
updateSuggestionProvidersVisibility(state)
// Do not make suggestions based on user's current URL unless it's a search shortcut
@@ -226,17 +222,6 @@ class AwesomeBarView(
view.onInputChanged(state.query)
}
- private fun updateSearchShortcutsIcon(searchState: SearchFragmentState) {
- with(container.context) {
- val showShortcuts = searchState.showSearchShortcuts
- search_shortcuts_button?.isChecked = showShortcuts
-
- val color = if (showShortcuts) R.attr.contrastText else R.attr.primaryText
-
- search_shortcuts_button.compoundDrawables[0]?.setTint(getColorFromAttr(color))
- }
- }
-
private fun updateSuggestionProvidersVisibility(state: SearchFragmentState) {
if (state.showSearchShortcuts) {
handleDisplayShortcutsProviders()
diff --git a/app/src/main/res/layout/component_awesomebar.xml b/app/src/main/res/layout/component_awesomebar.xml
index 952699346..7db279ea6 100644
--- a/app/src/main/res/layout/component_awesomebar.xml
+++ b/app/src/main/res/layout/component_awesomebar.xml
@@ -7,13 +7,13 @@
xmlns:mozac="http://schemas.android.com/apk/res-auto"
android:id="@+id/awesomeBar"
android:layout_width="0dp"
- android:layout_height="0dp"
+ android:layout_height="wrap_content"
android:fadingEdge="horizontal"
android:fadingEdgeLength="40dp"
+ android:nestedScrollingEnabled="false"
android:requiresFadingEdge="vertical"
- app:layout_constraintBottom_toTopOf="@id/pill_wrapper"
+ app:layout_constraintTop_toTopOf="@id/awesomeBar_barrier"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/search_with_shortcuts"
mozac:awesomeBarDescriptionTextColor="?secondaryText"
- mozac:awesomeBarTitleTextColor="?primaryText" />
+ mozac:awesomeBarTitleTextColor="?primaryText" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
index 7edfbde6e..10629446b 100644
--- a/app/src/main/res/layout/fragment_search.xml
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -11,27 +11,6 @@
android:background="?foundation"
tools:context=".search.SearchFragment">
-
-
-
-
-
-
+
-
+
-
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+