Skip to content

Commit e2345be

Browse files
committed
Refactor the OmnibarFeatureRepository and make it a public API
1 parent 9d4c7d1 commit e2345be

File tree

35 files changed

+122
-81
lines changed

35 files changed

+122
-81
lines changed

app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import com.duckduckgo.app.browser.WebViewErrorResponse.LOADING
6565
import com.duckduckgo.app.browser.WebViewErrorResponse.OMITTED
6666
import com.duckduckgo.app.browser.addtohome.AddToHomeCapabilityDetector
6767
import com.duckduckgo.app.browser.animations.AddressBarTrackersAnimationFeatureToggle
68+
import com.duckduckgo.app.browser.api.OmnibarRepository
6869
import com.duckduckgo.app.browser.applinks.AppLinksHandler
6970
import com.duckduckgo.app.browser.camera.CameraHardwareChecker
7071
import com.duckduckgo.app.browser.certificates.BypassedSSLCertificatesRepository
@@ -114,7 +115,7 @@ import com.duckduckgo.app.browser.model.BasicAuthenticationRequest
114115
import com.duckduckgo.app.browser.model.LongPressTarget
115116
import com.duckduckgo.app.browser.newtab.FavoritesQuickAccessAdapter.QuickAccessFavorite
116117
import com.duckduckgo.app.browser.omnibar.OmnibarEntryConverter
117-
import com.duckduckgo.app.browser.omnibar.OmnibarFeatureRepository
118+
import com.duckduckgo.app.browser.omnibar.OmnibarType
118119
import com.duckduckgo.app.browser.omnibar.QueryOrigin.*
119120
import com.duckduckgo.app.browser.refreshpixels.RefreshPixelSender
120121
import com.duckduckgo.app.browser.remotemessage.RemoteMessagingModel
@@ -222,7 +223,6 @@ import com.duckduckgo.browser.api.autocomplete.AutoComplete.AutoCompleteSuggesti
222223
import com.duckduckgo.browser.api.autocomplete.AutoCompleteSettings
223224
import com.duckduckgo.browser.api.brokensite.BrokenSiteContext
224225
import com.duckduckgo.browser.api.webviewcompat.WebViewCompatWrapper
225-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
226226
import com.duckduckgo.common.test.CoroutineTestRule
227227
import com.duckduckgo.common.test.InstantSchedulersRule
228228
import com.duckduckgo.common.ui.tabs.SwipingTabsFeature
@@ -584,7 +584,7 @@ class BrowserTabViewModelTest {
584584
private val mockSubscriptionsJSHelper: SubscriptionsJSHelper = mock()
585585
private val mockOnboardingHomeScreenWidgetToggles: OnboardingHomeScreenWidgetToggles = mock()
586586
private val tabManager: TabManager = mock()
587-
private val mockOmnibarFeatureRepository: OmnibarFeatureRepository = mock()
587+
private val mockOmnibarFeatureRepository: OmnibarRepository = mock()
588588

589589
private val mockAddressDisplayFormatter: AddressDisplayFormatter by lazy {
590590
mock {
@@ -848,7 +848,7 @@ class BrowserTabViewModelTest {
848848
webViewCompatWrapper = mockWebViewCompatWrapper,
849849
addressBarTrackersAnimationFeatureToggle = mockAddressBarTrackersAnimationFeatureToggle,
850850
autoconsentPixelManager = mockAutoconsentPixelManager,
851-
omnibarFeatureRepository = mockOmnibarFeatureRepository,
851+
omnibarRepository = mockOmnibarFeatureRepository,
852852
)
853853

854854
testee.loadData("abc", null, false, false)

app/src/main/java/com/duckduckgo/app/appearance/AppearanceActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ import com.duckduckgo.app.appearance.AppearanceViewModel.Command.LaunchThemeSett
3535
import com.duckduckgo.app.appearance.AppearanceViewModel.Command.UpdateTheme
3636
import com.duckduckgo.app.browser.R
3737
import com.duckduckgo.app.browser.databinding.ActivityAppearanceBinding
38+
import com.duckduckgo.app.browser.omnibar.OmnibarType
3839
import com.duckduckgo.app.fire.FireActivity
39-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
4040
import com.duckduckgo.common.ui.DuckDuckGoActivity
4141
import com.duckduckgo.common.ui.DuckDuckGoTheme
4242
import com.duckduckgo.common.ui.DuckDuckGoTheme.DARK

app/src/main/java/com/duckduckgo/app/appearance/AppearanceViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ import androidx.lifecycle.ViewModel
2020
import androidx.lifecycle.viewModelScope
2121
import androidx.webkit.WebViewFeature
2222
import com.duckduckgo.anvil.annotations.ContributesViewModel
23-
import com.duckduckgo.app.browser.omnibar.OmnibarFeatureRepository
23+
import com.duckduckgo.app.browser.api.OmnibarRepository
24+
import com.duckduckgo.app.browser.omnibar.OmnibarType
2425
import com.duckduckgo.app.icon.api.AppIcon
2526
import com.duckduckgo.app.pixels.AppPixelName
2627
import com.duckduckgo.app.pixels.AppPixelName.SETTINGS_THEME_TOGGLED_DARK
@@ -29,7 +30,6 @@ import com.duckduckgo.app.pixels.AppPixelName.SETTINGS_THEME_TOGGLED_SYSTEM_DEFA
2930
import com.duckduckgo.app.settings.db.SettingsDataStore
3031
import com.duckduckgo.app.statistics.pixels.Pixel
3132
import com.duckduckgo.app.tabs.store.TabSwitcherDataStore
32-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
3333
import com.duckduckgo.common.ui.DuckDuckGoTheme
3434
import com.duckduckgo.common.ui.store.ThemingDataStore
3535
import com.duckduckgo.common.utils.DispatcherProvider
@@ -56,7 +56,7 @@ class AppearanceViewModel @Inject constructor(
5656
private val pixel: Pixel,
5757
private val dispatcherProvider: DispatcherProvider,
5858
private val tabSwitcherDataStore: TabSwitcherDataStore,
59-
omnibarFeatureRepository: OmnibarFeatureRepository,
59+
omnibarRepository: OmnibarRepository,
6060
) : ViewModel() {
6161
data class ViewState(
6262
val theme: DuckDuckGoTheme = DuckDuckGoTheme.LIGHT,
@@ -93,7 +93,7 @@ class AppearanceViewModel @Inject constructor(
9393
supportsForceDarkMode = WebViewFeature.isFeatureSupported(WebViewFeature.ALGORITHMIC_DARKENING),
9494
isFullUrlEnabled = settingsDataStore.isFullUrlEnabled,
9595
omnibarType = settingsDataStore.omnibarType,
96-
shouldShowSplitOmnibarSettings = omnibarFeatureRepository.isSplitOmnibarAvailable,
96+
shouldShowSplitOmnibarSettings = omnibarRepository.isSplitOmnibarAvailable,
9797
),
9898
)
9999

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import com.duckduckgo.app.browser.defaultbrowsing.prompts.ui.DefaultBrowserBotto
5858
import com.duckduckgo.app.browser.defaultbrowsing.prompts.ui.DefaultBrowserBottomSheetDialog.EventListener
5959
import com.duckduckgo.app.browser.newaddressbaroption.NewAddressBarOptionManager
6060
import com.duckduckgo.app.browser.omnibar.OmnibarEntryConverter
61+
import com.duckduckgo.app.browser.omnibar.OmnibarType
6162
import com.duckduckgo.app.browser.shortcut.ShortcutBuilder
6263
import com.duckduckgo.app.browser.tabs.TabManager
6364
import com.duckduckgo.app.browser.tabs.TabManager.TabModel
@@ -94,7 +95,6 @@ import com.duckduckgo.appbuildconfig.api.AppBuildConfig
9495
import com.duckduckgo.autofill.api.emailprotection.EmailProtectionLinkVerifier
9596
import com.duckduckgo.browser.api.ui.BrowserScreens.BookmarksScreenNoParams
9697
import com.duckduckgo.browser.api.ui.BrowserScreens.SettingsScreenNoParams
97-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
9898
import com.duckduckgo.common.ui.DuckDuckGoActivity
9999
import com.duckduckgo.common.ui.tabs.SwipingTabsFeatureProvider
100100
import com.duckduckgo.common.ui.view.addBottomShadow

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

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ import com.duckduckgo.app.browser.R.string
107107
import com.duckduckgo.app.browser.SSLErrorType.NONE
108108
import com.duckduckgo.app.browser.WebViewErrorResponse.LOADING
109109
import com.duckduckgo.app.browser.WebViewErrorResponse.OMITTED
110+
import com.duckduckgo.app.browser.api.OmnibarRepository
110111
import com.duckduckgo.app.browser.api.WebViewCapabilityChecker
111112
import com.duckduckgo.app.browser.api.WebViewCapabilityChecker.WebViewCapability
112113
import com.duckduckgo.app.browser.applinks.AppLinksLauncher
@@ -151,8 +152,8 @@ import com.duckduckgo.app.browser.omnibar.Omnibar.LogoClickListener
151152
import com.duckduckgo.app.browser.omnibar.Omnibar.OmnibarTextState
152153
import com.duckduckgo.app.browser.omnibar.Omnibar.TextListener
153154
import com.duckduckgo.app.browser.omnibar.Omnibar.ViewMode
154-
import com.duckduckgo.app.browser.omnibar.OmnibarFeatureRepository
155155
import com.duckduckgo.app.browser.omnibar.OmnibarItemPressedListener
156+
import com.duckduckgo.app.browser.omnibar.OmnibarType
156157
import com.duckduckgo.app.browser.omnibar.QueryOrigin
157158
import com.duckduckgo.app.browser.print.PrintDocumentAdapterFactory
158159
import com.duckduckgo.app.browser.print.PrintInjector
@@ -253,7 +254,6 @@ import com.duckduckgo.browser.api.ui.BrowserScreens.PrivateSearchScreenNoParams
253254
import com.duckduckgo.browser.api.ui.BrowserScreens.WebViewActivityWithParams
254255
import com.duckduckgo.browser.api.webviewcompat.WebViewCompatWrapper
255256
import com.duckduckgo.browser.ui.autocomplete.BrowserAutoCompleteSuggestionsAdapter
256-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
257257
import com.duckduckgo.common.ui.DuckDuckGoActivity
258258
import com.duckduckgo.common.ui.DuckDuckGoFragment
259259
import com.duckduckgo.common.ui.store.BrowserAppTheme
@@ -598,7 +598,7 @@ class BrowserTabFragment :
598598
lateinit var webViewCompatWrapper: WebViewCompatWrapper
599599

600600
@Inject
601-
lateinit var omnibarFeatureRepository: OmnibarFeatureRepository
601+
lateinit var omnibarRepository: OmnibarRepository
602602

603603
@Inject
604604
lateinit var webViewCompatTestHelper: WebViewCompatTestHelper
@@ -931,9 +931,10 @@ class BrowserTabFragment :
931931
}
932932

933933
InputScreenActivityResultCodes.MENU_REQUESTED -> {
934+
val isSplitOmnibarEnabled = omnibarRepository.omnibarType == OmnibarType.SPLIT
934935
launchPopupMenu(
935-
anchorToNavigationBar = omnibarFeatureRepository.isSplitOmnibarEnabled,
936-
addExtraDelay = omnibarFeatureRepository.isSplitOmnibarEnabled,
936+
anchorToNavigationBar = isSplitOmnibarEnabled,
937+
addExtraDelay = isSplitOmnibarEnabled,
937938
)
938939
}
939940

@@ -1031,7 +1032,7 @@ class BrowserTabFragment :
10311032
omnibar = Omnibar(
10321033
omnibarType = settingsDataStore.omnibarType,
10331034
binding = binding,
1034-
isUnifiedOmnibarEnabled = omnibarFeatureRepository.isUnifiedOmnibarFlagEnabled,
1035+
isUnifiedOmnibarEnabled = omnibarRepository.isUnifiedOmnibarLayoutEnabled,
10351036
)
10361037

10371038
webViewContainer = binding.webViewContainer
@@ -1191,7 +1192,7 @@ class BrowserTabFragment :
11911192
browserNavigationBarIntegration = BrowserNavigationBarViewIntegration(
11921193
lifecycleScope = lifecycleScope,
11931194
browserTabFragmentBinding = binding,
1194-
isEnabled = omnibarFeatureRepository.isSplitOmnibarEnabled,
1195+
isEnabled = omnibarRepository.omnibarType == OmnibarType.SPLIT,
11951196
omnibar = omnibar,
11961197
browserNavigationBarObserver = observer,
11971198
)
@@ -1634,7 +1635,7 @@ class BrowserTabFragment :
16341635
.flowWithLifecycle(lifecycle, Lifecycle.State.RESUMED)
16351636
.collectLatest { hasFavorites ->
16361637
binding.includeNewBrowserTab.topNtpOutlineStroke.isVisible = hasFavorites
1637-
binding.includeNewBrowserTab.bottomNtpOutlineStroke.isVisible = hasFavorites && !omnibarFeatureRepository.isSplitOmnibarEnabled
1638+
binding.includeNewBrowserTab.bottomNtpOutlineStroke.isVisible = hasFavorites && omnibarRepository.omnibarType != OmnibarType.SPLIT
16381639
}
16391640
}
16401641

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import com.duckduckgo.app.browser.WebViewErrorResponse.LOADING
6161
import com.duckduckgo.app.browser.WebViewErrorResponse.OMITTED
6262
import com.duckduckgo.app.browser.addtohome.AddToHomeCapabilityDetector
6363
import com.duckduckgo.app.browser.animations.AddressBarTrackersAnimationFeatureToggle
64+
import com.duckduckgo.app.browser.api.OmnibarRepository
6465
import com.duckduckgo.app.browser.applinks.AppLinksHandler
6566
import com.duckduckgo.app.browser.camera.CameraHardwareChecker
6667
import com.duckduckgo.app.browser.certificates.BypassedSSLCertificatesRepository
@@ -192,7 +193,7 @@ import com.duckduckgo.app.browser.model.BasicAuthenticationRequest
192193
import com.duckduckgo.app.browser.model.LongPressTarget
193194
import com.duckduckgo.app.browser.newtab.FavoritesQuickAccessAdapter
194195
import com.duckduckgo.app.browser.omnibar.OmnibarEntryConverter
195-
import com.duckduckgo.app.browser.omnibar.OmnibarFeatureRepository
196+
import com.duckduckgo.app.browser.omnibar.OmnibarType
196197
import com.duckduckgo.app.browser.omnibar.QueryOrigin
197198
import com.duckduckgo.app.browser.omnibar.QueryOrigin.FromAutocomplete
198199
import com.duckduckgo.app.browser.refreshpixels.RefreshPixelSender
@@ -294,7 +295,6 @@ import com.duckduckgo.browser.api.brokensite.BrokenSiteData
294295
import com.duckduckgo.browser.api.brokensite.BrokenSiteData.ReportFlow.MENU
295296
import com.duckduckgo.browser.api.brokensite.BrokenSiteData.ReportFlow.RELOAD_THREE_TIMES_WITHIN_20_SECONDS
296297
import com.duckduckgo.browser.api.webviewcompat.WebViewCompatWrapper
297-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
298298
import com.duckduckgo.common.ui.tabs.SwipingTabsFeatureProvider
299299
import com.duckduckgo.common.utils.AppUrl
300300
import com.duckduckgo.common.utils.AppUrl.ParamKey.QUERY
@@ -489,7 +489,7 @@ class BrowserTabViewModel @Inject constructor(
489489
private val webViewCompatWrapper: WebViewCompatWrapper,
490490
private val addressBarTrackersAnimationFeatureToggle: AddressBarTrackersAnimationFeatureToggle,
491491
private val autoconsentPixelManager: AutoconsentPixelManager,
492-
private val omnibarFeatureRepository: OmnibarFeatureRepository,
492+
private val omnibarRepository: OmnibarRepository,
493493
) : ViewModel(),
494494
WebViewClientListener,
495495
EditSavedSiteListener,
@@ -2895,7 +2895,7 @@ class BrowserTabViewModel @Inject constructor(
28952895
showMenuButton = HighlightableButton.Visible(highlighted = false),
28962896
)
28972897
}
2898-
command.value = LaunchPopupMenu(anchorToNavigationBar = !isCustomTab && omnibarFeatureRepository.isSplitOmnibarEnabled)
2898+
command.value = LaunchPopupMenu(anchorToNavigationBar = !isCustomTab && omnibarRepository.omnibarType == OmnibarType.SPLIT)
28992899
}
29002900

29012901
fun onPopupMenuLaunched() {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ import com.duckduckgo.app.browser.navigation.bar.view.BrowserNavigationBarViewMo
4343
import com.duckduckgo.app.browser.navigation.bar.view.BrowserNavigationBarViewModel.Command.NotifyTabsButtonClicked
4444
import com.duckduckgo.app.browser.navigation.bar.view.BrowserNavigationBarViewModel.Command.NotifyTabsButtonLongClicked
4545
import com.duckduckgo.app.browser.navigation.bar.view.BrowserNavigationBarViewModel.ViewState
46+
import com.duckduckgo.app.browser.omnibar.OmnibarType
4647
import com.duckduckgo.app.browser.omnibar.OmnibarView
4748
import com.duckduckgo.app.browser.webview.TopOmnibarBrowserContainerLayoutBehavior
4849
import com.duckduckgo.app.onboardingdesignexperiment.OnboardingDesignExperimentManager
49-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
5050
import com.duckduckgo.common.ui.viewbinding.viewBinding
5151
import com.duckduckgo.common.utils.ConflatedJob
5252
import com.duckduckgo.common.utils.ViewViewModelFactory

app/src/main/java/com/duckduckgo/app/browser/newaddressbaroption/NewAddressBarOptionManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
package com.duckduckgo.app.browser.newaddressbaroption
1818

1919
import android.app.Activity
20+
import com.duckduckgo.app.browser.omnibar.OmnibarType
2021
import com.duckduckgo.app.onboarding.store.AppStage
2122
import com.duckduckgo.app.onboarding.store.UserStageStore
2223
import com.duckduckgo.app.settings.db.SettingsDataStore
23-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
2424
import com.duckduckgo.common.ui.DuckDuckGoActivity
2525
import com.duckduckgo.common.utils.DefaultDispatcherProvider
2626
import com.duckduckgo.common.utils.DispatcherProvider

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ import com.duckduckgo.app.global.view.renderIfChanged
8989
import com.duckduckgo.app.onboardingdesignexperiment.OnboardingDesignExperimentManager
9090
import com.duckduckgo.app.statistics.pixels.Pixel
9191
import com.duckduckgo.app.trackerdetection.model.Entity
92-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
9392
import com.duckduckgo.browser.ui.tabs.TabSwitcherButton
9493
import com.duckduckgo.common.ui.DuckDuckGoActivity
9594
import com.duckduckgo.common.ui.view.KeyboardAwareEditText

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ import com.duckduckgo.app.browser.viewstate.OmnibarViewState
4242
import com.duckduckgo.app.browser.webview.BottomOmnibarBrowserContainerLayoutBehavior
4343
import com.duckduckgo.app.global.model.PrivacyShield
4444
import com.duckduckgo.app.trackerdetection.model.Entity
45-
import com.duckduckgo.browser.ui.omnibar.OmnibarType
4645
import com.duckduckgo.common.ui.view.KeyboardAwareEditText
4746
import com.duckduckgo.common.ui.view.gone
4847
import com.duckduckgo.common.ui.view.hide

0 commit comments

Comments
 (0)