diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixel.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixel.kt index 817615ae23f9..a509bcd5e356 100644 --- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixel.kt +++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixel.kt @@ -22,7 +22,7 @@ import com.duckduckgo.app.statistics.pixels.Pixel.PixelType.Daily import com.duckduckgo.app.statistics.pixels.Pixel.PixelType.Unique enum class SubscriptionPixel( - private val baseName: String, + val baseName: String, private val types: Set, private val withSuffix: Boolean = true, ) { @@ -127,6 +127,10 @@ enum class SubscriptionPixel( baseName = "m_privacy-pro_app-settings_identity-theft-restoration_click", type = Count, ), + APP_SETTINGS_GET_SUBSCRIPTION_CLICK( + baseName = "m_privacy-pro_app-settings_get_click", + type = Count, + ), APP_SETTINGS_RESTORE_PURCHASE_CLICK( baseName = "m_privacy-pro_app-settings_restore-purchase_click", type = Count, diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelParamRemovalPlugin.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelParamRemovalPlugin.kt index efacc2a36c9e..9ebd5941ed80 100644 --- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelParamRemovalPlugin.kt +++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelParamRemovalPlugin.kt @@ -19,6 +19,7 @@ package com.duckduckgo.subscriptions.impl.pixels import com.duckduckgo.common.utils.plugins.pixel.PixelParamRemovalPlugin import com.duckduckgo.common.utils.plugins.pixel.PixelParamRemovalPlugin.PixelParameter import com.duckduckgo.di.scopes.AppScope +import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.APP_SETTINGS_GET_SUBSCRIPTION_CLICK import com.squareup.anvil.annotations.ContributesMultibinding import javax.inject.Inject @@ -29,6 +30,7 @@ class SubscriptionPixelParamRemovalPlugin @Inject constructor() : PixelParamRemo "m_subscribe" to PixelParameter.removeAtb(), "m_subscribe" to PixelParameter.removeOSVersion(), "m_ppro_feedback" to PixelParameter.removeAtb(), + APP_SETTINGS_GET_SUBSCRIPTION_CLICK.baseName to PixelParameter.removeAtb(), ) } } diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelSender.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelSender.kt index 28f4fc0efd0a..ca2843874815 100644 --- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelSender.kt +++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/pixels/SubscriptionPixelSender.kt @@ -22,6 +22,7 @@ import com.duckduckgo.common.utils.extensions.toSanitizedLanguageTag import com.duckduckgo.di.scopes.AppScope import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.ACTIVATE_SUBSCRIPTION_ENTER_EMAIL_CLICK import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.ACTIVATE_SUBSCRIPTION_RESTORE_PURCHASE_CLICK +import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.APP_SETTINGS_GET_SUBSCRIPTION_CLICK import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.APP_SETTINGS_IDTR_CLICK import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.APP_SETTINGS_PIR_CLICK import com.duckduckgo.subscriptions.impl.pixels.SubscriptionPixel.APP_SETTINGS_RESTORE_PURCHASE_CLICK @@ -90,6 +91,7 @@ interface SubscriptionPixelSender { fun reportSubscriptionSettingsShown() fun reportAppSettingsPirClick() fun reportAppSettingsIdtrClick() + fun reportAppSettingsGetSubscriptionClick() fun reportAppSettingsRestorePurchaseClick() fun reportSubscriptionSettingsChangePlanOrBillingClick() fun reportSubscriptionSettingsRemoveFromDeviceClick() @@ -196,6 +198,9 @@ class SubscriptionPixelSenderImpl @Inject constructor( override fun reportAppSettingsIdtrClick() = fire(APP_SETTINGS_IDTR_CLICK) + override fun reportAppSettingsGetSubscriptionClick() = + fire(APP_SETTINGS_GET_SUBSCRIPTION_CLICK) + override fun reportAppSettingsRestorePurchaseClick() = fire(APP_SETTINGS_RESTORE_PURCHASE_CLICK) diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModel.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModel.kt index 42270ce6c622..a3d224fe4f07 100644 --- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModel.kt +++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModel.kt @@ -77,6 +77,7 @@ class LegacyProSettingViewModel @Inject constructor( } fun onBuy() { + pixelSender.reportAppSettingsGetSubscriptionClick() sendCommand(OpenBuyScreen) } diff --git a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModel.kt b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModel.kt index 4bcab0dd205a..d285dc8bde5e 100644 --- a/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModel.kt +++ b/subscriptions/subscriptions-impl/src/main/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModel.kt @@ -77,6 +77,7 @@ class ProSettingViewModel @Inject constructor( } fun onBuy() { + pixelSender.reportAppSettingsGetSubscriptionClick() sendCommand(OpenBuyScreen) } diff --git a/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModelTest.kt b/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModelTest.kt index 87a48f06dafd..81153cb0b527 100644 --- a/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModelTest.kt +++ b/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/LegacyProSettingViewModelTest.kt @@ -46,6 +46,7 @@ class LegacyProSettingViewModelTest { viewModel.commands().test { viewModel.onBuy() assertTrue(awaitItem() is OpenBuyScreen) + verify(pixelSender).reportAppSettingsGetSubscriptionClick() cancelAndConsumeRemainingEvents() } } @@ -55,6 +56,7 @@ class LegacyProSettingViewModelTest { viewModel.commands().test { viewModel.onRestore() assertTrue(awaitItem() is OpenRestoreScreen) + verify(pixelSender).reportAppSettingsRestorePurchaseClick() cancelAndConsumeRemainingEvents() } } diff --git a/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModelTest.kt b/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModelTest.kt index 8e35b5277bfb..bb031936c30e 100644 --- a/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModelTest.kt +++ b/subscriptions/subscriptions-impl/src/test/java/com/duckduckgo/subscriptions/impl/settings/views/ProSettingViewModelTest.kt @@ -46,6 +46,7 @@ class ProSettingViewModelTest { viewModel.commands().test { viewModel.onBuy() assertTrue(awaitItem() is OpenBuyScreen) + verify(pixelSender).reportAppSettingsGetSubscriptionClick() cancelAndConsumeRemainingEvents() } } @@ -55,6 +56,7 @@ class ProSettingViewModelTest { viewModel.commands().test { viewModel.onRestore() assertTrue(awaitItem() is OpenRestoreScreen) + verify(pixelSender).reportAppSettingsRestorePurchaseClick() cancelAndConsumeRemainingEvents() } }