diff --git a/app/src/main/java/org/mozilla/fenix/onboarding/ReEngagementNotificationWorker.kt b/app/src/main/java/org/mozilla/fenix/onboarding/ReEngagementNotificationWorker.kt index e58a6b737..c4ec1421e 100644 --- a/app/src/main/java/org/mozilla/fenix/onboarding/ReEngagementNotificationWorker.kt +++ b/app/src/main/java/org/mozilla/fenix/onboarding/ReEngagementNotificationWorker.kt @@ -23,6 +23,7 @@ import org.mozilla.fenix.GleanMetrics.Events import org.mozilla.fenix.HomeActivity import org.mozilla.fenix.R import org.mozilla.fenix.ext.settings +import org.mozilla.fenix.nimbus.FxNimbus import org.mozilla.fenix.utils.IntentUtils import org.mozilla.fenix.utils.Settings import java.util.concurrent.TimeUnit @@ -42,6 +43,14 @@ class ReEngagementNotificationWorker( return Result.success() } + // Recording the exposure event here to capture all users who met all criteria to receive + // the re-engagement notification + FxNimbus.features.reEngagementNotification.recordExposure() + + if (!settings.reEngagementNotificationEnabled) { + return Result.success() + } + val channelId = ensureMarketingChannelExists(applicationContext) NotificationManagerCompat.from(applicationContext) .notify( diff --git a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt index 12283f5b0..cd286c9cf 100644 --- a/app/src/main/java/org/mozilla/fenix/utils/Settings.kt +++ b/app/src/main/java/org/mozilla/fenix/utils/Settings.kt @@ -599,7 +599,7 @@ class Settings(private val appContext: Context) : PreferencesHolder { * Check if we should show the re-engagement notification. */ fun shouldShowReEngagementNotification(): Boolean { - return !reEngagementNotificationShown && reEngagementNotificationEnabled && !isDefaultBrowserBlocking() + return !reEngagementNotificationShown && !isDefaultBrowserBlocking() } /** diff --git a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt index 0b66c046d..d534b45f0 100644 --- a/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt +++ b/app/src/test/java/org/mozilla/fenix/utils/SettingsTest.kt @@ -793,37 +793,17 @@ class SettingsTest { every { localSetting.isDefaultBrowserBlocking() } returns false - every { localSetting.reEngagementNotificationEnabled } returns false - localSetting.reEngagementNotificationShown = false - assertFalse(localSetting.shouldShowReEngagementNotification()) - - every { localSetting.reEngagementNotificationEnabled } returns true localSetting.reEngagementNotificationShown = false assert(localSetting.shouldShowReEngagementNotification()) - every { localSetting.reEngagementNotificationEnabled } returns false - localSetting.reEngagementNotificationShown = true - assertFalse(localSetting.shouldShowReEngagementNotification()) - - every { localSetting.reEngagementNotificationEnabled } returns true localSetting.reEngagementNotificationShown = true assertFalse(localSetting.shouldShowReEngagementNotification()) every { localSetting.isDefaultBrowserBlocking() } returns true - every { localSetting.reEngagementNotificationEnabled } returns false localSetting.reEngagementNotificationShown = false assertFalse(localSetting.shouldShowReEngagementNotification()) - every { localSetting.reEngagementNotificationEnabled } returns true - localSetting.reEngagementNotificationShown = false - assertFalse(localSetting.shouldShowReEngagementNotification()) - - every { localSetting.reEngagementNotificationEnabled } returns false - localSetting.reEngagementNotificationShown = true - assertFalse(localSetting.shouldShowReEngagementNotification()) - - every { localSetting.reEngagementNotificationEnabled } returns true localSetting.reEngagementNotificationShown = true assertFalse(localSetting.shouldShowReEngagementNotification()) }