Skip to content

Commit 643feee

Browse files
committed
Hide the icon container for split omnibar
1 parent c1d9f57 commit 643feee

File tree

12 files changed

+624
-235
lines changed

12 files changed

+624
-235
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserActivity.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -990,6 +990,7 @@ open class BrowserActivity : DuckDuckGoActivity() {
990990
if (this::omnibarToolbarMockupBottomBinding.isInitialized) {
991991
omnibarToolbarMockupBottomBinding.appBarLayoutMockup.visibility = View.GONE
992992
}
993+
binding.navigationBarMockup.root.gone()
993994
},
994995
300,
995996
)
@@ -1412,6 +1413,11 @@ open class BrowserActivity : DuckDuckGoActivity() {
14121413
if (Build.VERSION.SDK_INT >= 28) {
14131414
omnibarToolbarMockupBinding.mockOmniBarContainerShadow.addBottomShadow()
14141415
}
1416+
1417+
if (settingsDataStore.omnibarType == OmnibarType.SPLIT) {
1418+
binding.topMockupSingleToolbar.iconsContainer.gone()
1419+
binding.navigationBarMockup.root.show()
1420+
}
14151421
}
14161422

14171423
OmnibarType.SINGLE_BOTTOM -> {

app/src/main/java/com/duckduckgo/app/browser/navigation/bar/view/BrowserNavigationBarViewModel.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,9 @@ class BrowserNavigationBarViewModel @Inject constructor(
163163
}
164164

165165
data class ViewState(
166-
val isVisible: Boolean = false,
167-
val newTabButtonVisible: Boolean = false,
168-
val autofillButtonVisible: Boolean = true,
166+
val isVisible: Boolean = true,
167+
val newTabButtonVisible: Boolean = true,
168+
val autofillButtonVisible: Boolean = false,
169169
val bookmarksButtonVisible: Boolean = true,
170170
val fireButtonVisible: Boolean = true,
171171
val fireButtonHighlighted: Boolean = false,

app/src/main/java/com/duckduckgo/app/browser/omnibar/OmnibarLayout.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,7 @@ class OmnibarLayout @JvmOverloads constructor(
588588
}
589589

590590
omnibarCardShadow.isGone = viewState.viewMode is ViewMode.CustomTab && !isFindInPageVisible
591+
iconsContainer.isVisible = viewState.showFireIcon || viewState.showTabsMenu || viewState.showBrowserMenu
591592

592593
renderButtons(viewState)
593594

@@ -779,9 +780,12 @@ class OmnibarLayout @JvmOverloads constructor(
779780
showSpacer = viewState.showClearButton || viewState.showVoiceSearch,
780781
)
781782

782-
if (omnibarAnimationManager.isFeatureEnabled() &&
783-
previousTransitionState != null &&
784-
newTransitionState != previousTransitionState
783+
if (omnibarAnimationManager.isFeatureEnabled() && previousTransitionState != null &&
784+
(
785+
newTransitionState.showFireIcon != previousTransitionState?.showFireIcon ||
786+
newTransitionState.showTabsMenu != previousTransitionState?.showTabsMenu ||
787+
newTransitionState.showBrowserMenu != previousTransitionState?.showBrowserMenu
788+
)
785789
) {
786790
TransitionManager.beginDelayedTransition(toolbarContainer, omniBarButtonTransitionSet)
787791
}

app/src/main/java/com/duckduckgo/app/browser/omnibar/OmnibarLayoutViewModel.kt

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import com.duckduckgo.app.statistics.pixels.Pixel.PixelType.Unique
5555
import com.duckduckgo.app.tabs.model.TabRepository
5656
import com.duckduckgo.app.trackerdetection.model.Entity
5757
import com.duckduckgo.browser.api.UserBrowserProperties
58+
import com.duckduckgo.browser.ui.omnibar.OmnibarType
5859
import com.duckduckgo.common.utils.DispatcherProvider
5960
import com.duckduckgo.di.scopes.FragmentScope
6061
import com.duckduckgo.duckchat.api.DuckAiFeatureState
@@ -103,9 +104,14 @@ class OmnibarLayoutViewModel @Inject constructor(
103104
private val serpEasterEggLogosToggles: SerpEasterEggLogosToggles,
104105
) : ViewModel() {
105106

107+
private val isSplitOmnibarEnabled = settingsDataStore.omnibarType == OmnibarType.SPLIT
108+
106109
private val _viewState = MutableStateFlow(
107110
ViewState(
108111
showChatMenu = duckAiFeatureState.showOmnibarShortcutInAllStates.value,
112+
showFireIcon = !isSplitOmnibarEnabled,
113+
showTabsMenu = !isSplitOmnibarEnabled,
114+
showBrowserMenu = !isSplitOmnibarEnabled,
109115
),
110116
)
111117

@@ -256,7 +262,7 @@ class OmnibarLayoutViewModel @Inject constructor(
256262
) {
257263
logcat { "Omnibar: onOmnibarFocusChanged" }
258264
val showClearButton = hasFocus && inputFieldText.isNotBlank()
259-
val showControls = inputFieldText.isBlank()
265+
val showControls = inputFieldText.isBlank() && !isSplitOmnibarEnabled
260266

261267
if (hasFocus) {
262268
viewModelScope.launch {
@@ -326,9 +332,9 @@ class OmnibarLayoutViewModel @Inject constructor(
326332
previousLeadingIconState = null,
327333
highlightFireButton = HighlightableButton.Visible(highlighted = false),
328334
showClearButton = false,
329-
showTabsMenu = true,
330-
showFireIcon = true,
331-
showBrowserMenu = true,
335+
showTabsMenu = !isSplitOmnibarEnabled,
336+
showFireIcon = !isSplitOmnibarEnabled,
337+
showBrowserMenu = !isSplitOmnibarEnabled,
332338
showVoiceSearch = shouldShowVoiceSearch(
333339
hasFocus = false,
334340
query = _viewState.value.omnibarText,
@@ -481,17 +487,16 @@ class OmnibarLayoutViewModel @Inject constructor(
481487
AppPixelName.ADDRESS_BAR_SERP_ENTRY_CLEARED,
482488
AppPixelName.ADDRESS_BAR_WEBSITE_ENTRY_CLEARED,
483489
)
484-
val showControls = true
485490

486491
_viewState.update {
487492
it.copy(
488493
omnibarText = "",
489494
updateOmnibarText = true,
490495
expanded = true,
491496
showClearButton = false,
492-
showBrowserMenu = showControls,
493-
showTabsMenu = showControls,
494-
showFireIcon = showControls,
497+
showBrowserMenu = !isSplitOmnibarEnabled,
498+
showTabsMenu = !isSplitOmnibarEnabled,
499+
showFireIcon = !isSplitOmnibarEnabled,
495500
)
496501
}
497502
}
@@ -546,7 +551,7 @@ class OmnibarLayoutViewModel @Inject constructor(
546551
deleteLastCharacter: Boolean,
547552
) {
548553
val showClearButton = hasFocus && query.isNotBlank()
549-
val showControls = !hasFocus || query.isBlank()
554+
val showControls = (!hasFocus || query.isBlank()) && !isSplitOmnibarEnabled
550555

551556
logcat { "Omnibar: onInputStateChanged query $query hasFocus $hasFocus clearQuery $clearQuery deleteLastCharacter $deleteLastCharacter" }
552557

0 commit comments

Comments
 (0)