@@ -20,6 +20,7 @@ import androidx.lifecycle.ViewModel
2020import androidx.lifecycle.viewModelScope
2121import androidx.webkit.WebViewFeature
2222import com.duckduckgo.anvil.annotations.ContributesViewModel
23+ import com.duckduckgo.app.browser.animations.AddressBarTrackersAnimationManager
2324import com.duckduckgo.app.browser.api.OmnibarRepository
2425import com.duckduckgo.app.browser.omnibar.OmnibarType
2526import com.duckduckgo.app.browser.urldisplay.UrlDisplayRepository
@@ -58,6 +59,7 @@ class AppearanceViewModel @Inject constructor(
5859 private val pixel : Pixel ,
5960 private val dispatcherProvider : DispatcherProvider ,
6061 private val tabSwitcherDataStore : TabSwitcherDataStore ,
62+ private val addressBarTrackersAnimationManager : AddressBarTrackersAnimationManager ,
6163 omnibarRepository : OmnibarRepository ,
6264) : ViewModel() {
6365 data class ViewState (
@@ -69,6 +71,8 @@ class AppearanceViewModel @Inject constructor(
6971 val omnibarType : OmnibarType = OmnibarType .SINGLE_TOP ,
7072 val isFullUrlEnabled : Boolean = true ,
7173 val isTrackersCountInTabSwitcherEnabled : Boolean = true ,
74+ val isTrackersCountInAddressBarEnabled : Boolean = true ,
75+ val shouldShowTrackersCountInAddressBar : Boolean = false ,
7276 val shouldShowSplitOmnibarSettings : Boolean = false ,
7377 )
7478
@@ -95,6 +99,7 @@ class AppearanceViewModel @Inject constructor(
9599 supportsForceDarkMode = WebViewFeature .isFeatureSupported(WebViewFeature .ALGORITHMIC_DARKENING ),
96100 omnibarType = settingsDataStore.omnibarType,
97101 shouldShowSplitOmnibarSettings = omnibarRepository.isSplitOmnibarAvailable,
102+ isTrackersCountInAddressBarEnabled = settingsDataStore.showTrackersCountInAddressBar,
98103 ),
99104 )
100105
@@ -103,9 +108,11 @@ class AppearanceViewModel @Inject constructor(
103108 urlDisplayRepository.isFullUrlEnabled,
104109 tabSwitcherDataStore.isTrackersAnimationInfoTileHidden(),
105110 ) { currentViewState, isFullUrlEnabled, isTrackersAnimationTileHidden ->
111+ val isFeatureEnabled = addressBarTrackersAnimationManager.isFeatureEnabled()
106112 currentViewState.copy(
107113 isTrackersCountInTabSwitcherEnabled = ! isTrackersAnimationTileHidden,
108114 isFullUrlEnabled = isFullUrlEnabled,
115+ shouldShowTrackersCountInAddressBar = isFeatureEnabled,
109116 )
110117 }.stateIn(viewModelScope, SharingStarted .Lazily , viewState.value)
111118
@@ -194,4 +201,14 @@ class AppearanceViewModel @Inject constructor(
194201 pixel.fire(AppPixelName .SETTINGS_APPEARANCE_IS_TRACKER_COUNT_IN_TAB_SWITCHER_TOGGLED , params)
195202 }
196203 }
204+
205+ fun onShowTrackersCountInAddressBarChanged (checked : Boolean ) {
206+ viewModelScope.launch(dispatcherProvider.io()) {
207+ settingsDataStore.showTrackersCountInAddressBar = checked
208+ viewState.update { it.copy(isTrackersCountInAddressBarEnabled = checked) }
209+
210+ val params = mapOf (Pixel .PixelParameter .IS_ENABLED to checked.toString())
211+ pixel.fire(AppPixelName .SETTINGS_APPEARANCE_IS_TRACKER_COUNT_IN_ADDRESS_BAR_TOGGLED , params)
212+ }
213+ }
197214}
0 commit comments