Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,6 @@ import com.duckduckgo.app.browser.commands.NavigationCommand
import com.duckduckgo.app.browser.commands.NavigationCommand.Navigate
import com.duckduckgo.app.browser.customtabs.CustomTabPixelNames
import com.duckduckgo.app.browser.defaultbrowsing.prompts.AdditionalDefaultBrowserPrompts
import com.duckduckgo.app.browser.defaultbrowsing.prompts.ui.experiment.OnboardingHomeScreenWidgetExperiment
import com.duckduckgo.app.browser.duckplayer.DUCK_PLAYER_FEATURE_NAME
import com.duckduckgo.app.browser.duckplayer.DUCK_PLAYER_PAGE_FEATURE_NAME
import com.duckduckgo.app.browser.duckplayer.DuckPlayerJSHelper
Expand Down Expand Up @@ -122,6 +121,7 @@ import com.duckduckgo.app.browser.santize.NonHttpAppLinkChecker
import com.duckduckgo.app.browser.session.WebViewSessionStorage
import com.duckduckgo.app.browser.tabs.TabManager
import com.duckduckgo.app.browser.trafficquality.AndroidFeaturesHeaderPlugin.Companion.X_DUCKDUCKGO_ANDROID_HEADER
import com.duckduckgo.app.browser.ui.dialogs.widgetprompt.OnboardingHomeScreenWidgetToggles
import com.duckduckgo.app.browser.viewstate.BrowserViewState
import com.duckduckgo.app.browser.viewstate.CtaViewState
import com.duckduckgo.app.browser.viewstate.FindInPageViewState
Expand Down Expand Up @@ -561,7 +561,7 @@ class BrowserTabViewModelTest {
private val mockSiteHttpErrorHandler: HttpCodeSiteErrorHandler = mock()
private val mockSubscriptionsJSHelper: SubscriptionsJSHelper = mock()
private val mockReactivateUsersExperiment: ReactivateUsersExperiment = mock()
private val mockOnboardingHomeScreenWidgetExperiment: OnboardingHomeScreenWidgetExperiment = mock()
private val mockOnboardingHomeScreenWidgetToggles: OnboardingHomeScreenWidgetToggles = mock()
private val mockRebrandingFeatureToggle: SubscriptionRebrandingFeatureToggle = mock()
private val tabManager: TabManager = mock()

Expand Down Expand Up @@ -674,7 +674,7 @@ class BrowserTabViewModelTest {
subscriptions = subscriptions,
duckPlayer = mockDuckPlayer,
brokenSitePrompt = mockBrokenSitePrompt,
onboardingHomeScreenWidgetExperiment = mockOnboardingHomeScreenWidgetExperiment,
onboardingHomeScreenWidgetToggles = mockOnboardingHomeScreenWidgetToggles,
onboardingDesignExperimentManager = mockOnboardingDesignExperimentManager,
rebrandingFeatureToggle = mockRebrandingFeatureToggle,
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import androidx.room.Room
import androidx.test.platform.app.InstrumentationRegistry
import com.duckduckgo.app.browser.DuckDuckGoUrlDetectorImpl
import com.duckduckgo.app.browser.R
import com.duckduckgo.app.browser.defaultbrowsing.prompts.ui.experiment.OnboardingHomeScreenWidgetExperiment
import com.duckduckgo.app.browser.ui.dialogs.widgetprompt.OnboardingHomeScreenWidgetToggles
import com.duckduckgo.app.cta.db.DismissedCtaDao
import com.duckduckgo.app.cta.model.CtaId
import com.duckduckgo.app.cta.model.DismissedCta
Expand Down Expand Up @@ -60,6 +60,7 @@ import com.duckduckgo.duckplayer.api.DuckPlayer.DuckPlayerState.DISABLED
import com.duckduckgo.duckplayer.api.DuckPlayer.DuckPlayerState.ENABLED
import com.duckduckgo.duckplayer.api.DuckPlayer.UserPreferences
import com.duckduckgo.duckplayer.api.PrivatePlayerMode.AlwaysAsk
import com.duckduckgo.feature.toggles.api.FakeFeatureToggleFactory
import com.duckduckgo.feature.toggles.api.Toggle
import com.duckduckgo.subscriptions.api.SubscriptionRebrandingFeatureToggle
import com.duckduckgo.subscriptions.api.Subscriptions
Expand Down Expand Up @@ -121,7 +122,7 @@ class CtaViewModelTest {

private val mockBrokenSitePrompt: BrokenSitePrompt = mock()

private val mockOnboardingHomeScreenWidgetExperiment: OnboardingHomeScreenWidgetExperiment = mock()
private val fakeOnboardingHomeScreenWidgetToggles = FakeFeatureToggleFactory.create(OnboardingHomeScreenWidgetToggles::class.java)

private val mockOnboardingDesignExperimentManager: OnboardingDesignExperimentManager = mock()

Expand Down Expand Up @@ -183,7 +184,7 @@ class CtaViewModelTest {
subscriptions = mockSubscriptions,
duckPlayer = mockDuckPlayer,
brokenSitePrompt = mockBrokenSitePrompt,
onboardingHomeScreenWidgetExperiment = mockOnboardingHomeScreenWidgetExperiment,
onboardingHomeScreenWidgetToggles = fakeOnboardingHomeScreenWidgetToggles,
onboardingDesignExperimentManager = mockOnboardingDesignExperimentManager,
rebrandingFeatureToggle = mockRebrandingFeatureToggle,
)
Expand Down Expand Up @@ -356,7 +357,8 @@ class CtaViewModelTest {
fun whenRefreshCtaOnHomeTabAndHideTipsIsTrueAndWidgetCompatibleThenReturnWidgetCta() = runTest {
whenever(mockSettingsDataStore.hideTips).thenReturn(true)
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(true)
whenever(mockOnboardingHomeScreenWidgetExperiment.isOnboardingHomeScreenWidgetExperiment()).thenReturn(false)
fakeOnboardingHomeScreenWidgetToggles.self().setRawStoredState(Toggle.State(true))
fakeOnboardingHomeScreenWidgetToggles.onboardingHomeScreenWidgetPrompt().setRawStoredState(Toggle.State(false))

val value = testee.refreshCta(coroutineRule.testDispatcher, isBrowserShowing = false, detectedRefreshPatterns = detectedRefreshPatterns)
assertTrue(value is HomePanelCta.AddWidgetAuto)
Expand All @@ -382,7 +384,8 @@ class CtaViewModelTest {
whenever(mockSettingsDataStore.hideTips).thenReturn(true)
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(true)
whenever(mockWidgetCapabilities.hasInstalledWidgets).thenReturn(false)
whenever(mockOnboardingHomeScreenWidgetExperiment.isOnboardingHomeScreenWidgetExperiment()).thenReturn(false)
fakeOnboardingHomeScreenWidgetToggles.self().setRawStoredState(Toggle.State(true))
fakeOnboardingHomeScreenWidgetToggles.onboardingHomeScreenWidgetPrompt().setRawStoredState(Toggle.State(false))

val value = testee.refreshCta(coroutineRule.testDispatcher, isBrowserShowing = false, detectedRefreshPatterns = detectedRefreshPatterns)
assertTrue(value is HomePanelCta.AddWidgetAuto)
Expand All @@ -393,7 +396,8 @@ class CtaViewModelTest {
whenever(mockSettingsDataStore.hideTips).thenReturn(true)
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(true)
whenever(mockWidgetCapabilities.hasInstalledWidgets).thenReturn(false)
whenever(mockOnboardingHomeScreenWidgetExperiment.isOnboardingHomeScreenWidgetExperiment()).thenReturn(true)
fakeOnboardingHomeScreenWidgetToggles.self().setRawStoredState(Toggle.State(true))
fakeOnboardingHomeScreenWidgetToggles.onboardingHomeScreenWidgetPrompt().setRawStoredState(Toggle.State(true))

val value = testee.refreshCta(coroutineRule.testDispatcher, isBrowserShowing = false, detectedRefreshPatterns = detectedRefreshPatterns)
assertTrue(value is HomePanelCta.AddWidgetAutoOnboardingExperiment)
Expand Down Expand Up @@ -897,7 +901,8 @@ class CtaViewModelTest {
whenever(mockDismissedCtaDao.exists(CtaId.DAX_INTRO_VISIT_SITE)).thenReturn(true)
whenever(mockDismissedCtaDao.exists(CtaId.DAX_END)).thenReturn(true)
whenever(mockWidgetCapabilities.supportsAutomaticWidgetAdd).thenReturn(true)
whenever(mockOnboardingHomeScreenWidgetExperiment.isOnboardingHomeScreenWidgetExperiment()).thenReturn(false)
fakeOnboardingHomeScreenWidgetToggles.self().setRawStoredState(Toggle.State(true))
fakeOnboardingHomeScreenWidgetToggles.onboardingHomeScreenWidgetPrompt().setRawStoredState(Toggle.State(false))

val value = testee.refreshCta(coroutineRule.testDispatcher, isBrowserShowing = false, detectedRefreshPatterns = detectedRefreshPatterns)
assertFalse(value is DaxBubbleCta.DaxPrivacyProCta)
Expand Down
20 changes: 10 additions & 10 deletions app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ import com.duckduckgo.app.browser.customtabs.CustomTabPixelNames
import com.duckduckgo.app.browser.customtabs.CustomTabViewModel.Companion.CUSTOM_TAB_NAME_PREFIX
import com.duckduckgo.app.browser.databinding.FragmentBrowserTabBinding
import com.duckduckgo.app.browser.databinding.HttpAuthenticationBinding
import com.duckduckgo.app.browser.defaultbrowsing.prompts.ui.experiment.ExperimentalHomeScreenWidgetBottomSheetDialog
import com.duckduckgo.app.browser.downloader.BlobConverterInjector
import com.duckduckgo.app.browser.favicon.FaviconManager
import com.duckduckgo.app.browser.filechooser.FileChooserIntentBuilder
Expand Down Expand Up @@ -159,6 +158,7 @@ import com.duckduckgo.app.browser.tabpreview.WebViewPreviewGenerator
import com.duckduckgo.app.browser.tabpreview.WebViewPreviewPersister
import com.duckduckgo.app.browser.ui.dialogs.AutomaticFireproofDialogOptions
import com.duckduckgo.app.browser.ui.dialogs.LaunchInExternalAppOptions
import com.duckduckgo.app.browser.ui.dialogs.widgetprompt.AlternativeHomeScreenWidgetBottomSheetDialog
import com.duckduckgo.app.browser.urlextraction.DOMUrlExtractor
import com.duckduckgo.app.browser.urlextraction.UrlExtractingWebView
import com.duckduckgo.app.browser.urlextraction.UrlExtractingWebViewClient
Expand Down Expand Up @@ -603,7 +603,7 @@ class BrowserTabFragment :

private lateinit var popupMenu: BrowserPopupMenu
private lateinit var ctaBottomSheet: PromoBottomSheetDialog
private lateinit var experimentalBottomSheet: ExperimentalHomeScreenWidgetBottomSheetDialog
private lateinit var widgetBottomSheetDialog: AlternativeHomeScreenWidgetBottomSheetDialog

private lateinit var autoCompleteSuggestionsAdapter: BrowserAutoCompleteSuggestionsAdapter

Expand Down Expand Up @@ -4646,23 +4646,23 @@ class BrowserTabFragment :

private fun showBottomSheetCta(configuration: HomePanelCta) {
if (configuration is AddWidgetAutoOnboardingExperiment) {
showExperimentalHomeWidget(configuration)
showAlternativeHomeWidgetPrompt(configuration)
} else {
showHomeCta(configuration)
}
}

private fun showExperimentalHomeWidget(
private fun showAlternativeHomeWidgetPrompt(
configuration: HomePanelCta,
) {
hideDaxCta()

if (!::experimentalBottomSheet.isInitialized) {
experimentalBottomSheet = ExperimentalHomeScreenWidgetBottomSheetDialog(
if (!::widgetBottomSheetDialog.isInitialized) {
widgetBottomSheetDialog = AlternativeHomeScreenWidgetBottomSheetDialog(
context = requireContext(),
isLightModeEnabled = appTheme.isLightModeEnabled(),
)
experimentalBottomSheet.eventListener = object : ExperimentalHomeScreenWidgetBottomSheetDialog.EventListener {
widgetBottomSheetDialog.eventListener = object : AlternativeHomeScreenWidgetBottomSheetDialog.EventListener {
override fun onShown() {
viewModel.onCtaShown()
}
Expand All @@ -4679,10 +4679,10 @@ class BrowserTabFragment :
viewModel.onUserClickCtaSecondaryButton(configuration)
}
}
experimentalBottomSheet.show()
widgetBottomSheetDialog.show()
} else {
if (!experimentalBottomSheet.isShowing) {
experimentalBottomSheet.show()
if (!widgetBottomSheetDialog.isShowing) {
widgetBottomSheetDialog.show()
}
}
}
Expand Down

This file was deleted.

Loading
Loading