diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index c4a7925e4897..268663064d19 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -830,7 +830,6 @@ class BrowserTabFragment : configureOmnibarTextInput() configureFindInPage() configureAutoComplete() - configureFocusedView() configureNewTab() initPrivacyProtectionsPopup() @@ -2128,18 +2127,6 @@ class BrowserTabFragment : binding.autoCompleteSuggestionsList.adapter = autoCompleteSuggestionsAdapter } - private fun configureFocusedView() { - focusedViewProvider.provideFocusedViewVersion().onEach { focusedView -> - binding.focusedViewContainerLayout.addView( - focusedView.getView(requireContext()), - LayoutParams( - LayoutParams.MATCH_PARENT, - LayoutParams.MATCH_PARENT, - ), - ) - }.launchIn(lifecycleScope) - } - private fun configureNewTab() { newBrowserTab.newTabLayout.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY -> if (omnibar.omniBarContainer.isPressed) { @@ -3563,20 +3550,43 @@ class BrowserTabFragment : // viewState.showFavourites needs to be moved to FocusedViewModel if (viewState.showSuggestions || viewState.showFavorites) { if (viewState.favorites.isNotEmpty() && viewState.showFavorites) { + showFocusedView() binding.autoCompleteSuggestionsList.gone() - binding.focusedViewContainerLayout.show() } else { binding.autoCompleteSuggestionsList.show() - binding.focusedViewContainerLayout.gone() autoCompleteSuggestionsAdapter.updateData(viewState.searchResults.query, viewState.searchResults.suggestions) + hideFocusedView() } } else { binding.autoCompleteSuggestionsList.gone() - binding.focusedViewContainerLayout.gone() + hideFocusedView() } } } + private fun showFocusedView() { + binding.focusedViewContainerLayout.show() + configureFocusedView() + } + + private fun configureFocusedView() { + if (binding.focusedViewContainerLayout.childCount == 0) { + focusedViewProvider.provideFocusedViewVersion().onEach { focusedView -> + binding.focusedViewContainerLayout.addView( + focusedView.getView(requireContext()), + LayoutParams( + LayoutParams.MATCH_PARENT, + LayoutParams.MATCH_PARENT, + ), + ) + }.launchIn(lifecycleScope) + } + } + + private fun hideFocusedView() { + binding.focusedViewContainerLayout.gone() + } + fun renderOmnibar(viewState: OmnibarViewState) { renderIfChanged(viewState, lastSeenOmnibarViewState) { lastSeenOmnibarViewState = viewState diff --git a/app/src/main/res/layout/fragment_browser_tab.xml b/app/src/main/res/layout/fragment_browser_tab.xml index d76d4125af8a..a7f152f57415 100644 --- a/app/src/main/res/layout/fragment_browser_tab.xml +++ b/app/src/main/res/layout/fragment_browser_tab.xml @@ -51,6 +51,7 @@ android:id="@+id/focusedViewContainerLayout" android:clipToPadding="false" android:elevation="4dp" + android:background="?attr/daxColorSurface" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" />