Skip to content

Commit df435b6

Browse files
committed
Moved vpnMenuItem feature to browserConfig sub-feature
1 parent e497f11 commit df435b6

File tree

4 files changed

+15
-43
lines changed

4 files changed

+15
-43
lines changed

app/src/main/java/com/duckduckgo/app/browser/menu/VpnMenuItemFeature.kt

Lines changed: 0 additions & 38 deletions
This file was deleted.

app/src/main/java/com/duckduckgo/app/browser/menu/VpnMenuStateProvider.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.duckduckgo.app.browser.menu
1818

1919
import com.duckduckgo.app.browser.viewstate.VpnMenuState
20+
import com.duckduckgo.app.pixels.remoteconfig.AndroidBrowserConfigFeature
2021
import com.duckduckgo.di.scopes.AppScope
2122
import com.duckduckgo.networkprotection.api.NetworkProtectionState
2223
import com.duckduckgo.subscriptions.api.Product.NetP
@@ -35,7 +36,7 @@ interface VpnMenuStateProvider {
3536
class VpnMenuStateProviderImpl @Inject constructor(
3637
private val subscriptions: Subscriptions,
3738
private val networkProtectionState: NetworkProtectionState,
38-
private val vpnMenuItemFeature: VpnMenuItemFeature,
39+
private val androidBrowserConfigFeature: AndroidBrowserConfigFeature,
3940
) : VpnMenuStateProvider {
4041

4142
override fun getVpnMenuState(): Flow<VpnMenuState> {
@@ -44,7 +45,7 @@ class VpnMenuStateProviderImpl @Inject constructor(
4445
subscriptions.getEntitlementStatus(),
4546
networkProtectionState.getConnectionStateFlow(),
4647
) { subscriptionStatus, entitlements, connectionState ->
47-
if (!vpnMenuItemFeature.self().isEnabled()) {
48+
if (!androidBrowserConfigFeature.vpnMenuItem().isEnabled()) {
4849
return@combine VpnMenuState.Hidden
4950
}
5051

app/src/main/java/com/duckduckgo/app/pixels/remoteconfig/AndroidBrowserConfigFeature.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,12 @@ interface AndroidBrowserConfigFeature {
179179
*/
180180
@Toggle.DefaultValue(DefaultFeatureValue.TRUE)
181181
fun establishedAppStageGuard(): Toggle
182+
183+
/**
184+
* @return `true` when the remote config has the global "vpnMenuItem" androidBrowserConfig
185+
* sub-feature flag enabled
186+
* If the remote feature is not present defaults to `false`
187+
*/
188+
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
189+
fun vpnMenuItem(): Toggle
182190
}

app/src/test/java/com/duckduckgo/app/browser/menu/VpnMenuStateProviderTest.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package com.duckduckgo.app.browser.menu
1818

1919
import app.cash.turbine.test
2020
import com.duckduckgo.app.browser.viewstate.VpnMenuState
21+
import com.duckduckgo.app.pixels.remoteconfig.AndroidBrowserConfigFeature
2122
import com.duckduckgo.common.test.CoroutineTestRule
2223
import com.duckduckgo.feature.toggles.api.Toggle
2324
import com.duckduckgo.networkprotection.api.NetworkProtectionState
@@ -50,7 +51,7 @@ class VpnMenuStateProviderTest {
5051
private val connectionState: ConnectionState = mock()
5152

5253
@Mock
53-
private val vpnMenuItemFeature: VpnMenuItemFeature = mock()
54+
private val androidBrowserConfigFeature: AndroidBrowserConfigFeature = mock()
5455

5556
@Mock
5657
private val featureToggle: Toggle = mock()
@@ -59,9 +60,9 @@ class VpnMenuStateProviderTest {
5960

6061
@Before
6162
fun setUp() {
62-
whenever(vpnMenuItemFeature.self()).thenReturn(featureToggle)
63+
whenever(androidBrowserConfigFeature.vpnMenuItem()).thenReturn(featureToggle)
6364
whenever(featureToggle.isEnabled()).thenReturn(true)
64-
testee = VpnMenuStateProviderImpl(subscriptions, networkProtectionState, vpnMenuItemFeature)
65+
testee = VpnMenuStateProviderImpl(subscriptions, networkProtectionState, androidBrowserConfigFeature)
6566
}
6667

6768
@Test

0 commit comments

Comments
 (0)