From 40e4c57ec4ed9c227bfbd2c60167784170c712f0 Mon Sep 17 00:00:00 2001 From: Roger Yang Date: Tue, 6 Dec 2022 12:27:01 -0500 Subject: [PATCH] Close #27949: Add Nimbus exposure event for re-engagement notification --- .../ReEngagementNotificationWorker.kt | 9 +++++++++ .../java/org/mozilla/fenix/utils/Settings.kt | 2 +- .../org/mozilla/fenix/utils/SettingsTest.kt | 20 ------------------- 3 files changed, 10 insertions(+), 21 deletions(-) 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 e58a6b7378..c4ec1421ed 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 12283f5b0d..cd286c9cf9 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 0b66c046df..d534b45f07 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()) }