Skip to content

Commit 795ab08

Browse files
coolteydbrant
andauthored
Fix: set the original campaign id to avoid seeing the campaign multiple times (#6144)
* Fix: set the orignal campaign id to avoid seeing the campaign multiple times * Name things more explicitly. --------- Co-authored-by: Dmitry Brant <[email protected]> Co-authored-by: Dmitry Brant <[email protected]>
1 parent ad06235 commit 795ab08

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

app/src/main/java/org/wikipedia/page/PageFragment.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -710,14 +710,13 @@ class PageFragment : Fragment(), BackPressedHandler, CommunicationBridge.Communi
710710
val campaignId = it.getIdForLang(app.appOrSystemLanguageCode)
711711
if (!Prefs.announcementShownDialogs.contains(campaignId)) {
712712
DonorExperienceEvent.logAction("impression", "article_banner", pageTitle.wikiSite.languageCode, campaignId)
713-
campaignDialog = CampaignDialog(requireActivity(), it, onNeutralBtnClick = { campaignId ->
713+
campaignDialog = CampaignDialog(requireActivity(), it, onNeutralButtonClick = { campaignIdForAnalytics ->
714714
DonorExperienceEvent.logDonationReminderAction(
715715
action = "group_assigned",
716716
activeInterface = "article_banner",
717717
groupAssigned = if (DonationReminderAbTest().isTestGroupUser()) "android_remind_b" else "android_remind_a",
718-
campaignId = DonationReminderHelper.campaignId
718+
campaignId = campaignIdForAnalytics
719719
)
720-
Prefs.announcementShownDialogs = setOf(campaignId)
721720
donationReminderLauncher.launch(DonationReminderActivity.newIntent(requireContext()))
722721
})
723722
campaignDialog?.setCancelable(false)

app/src/main/java/org/wikipedia/page/campaign/CampaignDialog.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,12 @@ import java.time.Instant
1818
import java.time.LocalDateTime
1919
import java.util.Date
2020

21-
class CampaignDialog internal constructor(private val context: Context, val campaign: Campaign, val onNeutralBtnClick: ((campaignId: String) -> Unit)? = null) : AlertDialog.Builder(context), CampaignDialogView.Callback {
21+
class CampaignDialog internal constructor(private val context: Context, val campaign: Campaign, val onNeutralButtonClick: ((campaignId: String) -> Unit)? = null) : AlertDialog.Builder(context), CampaignDialogView.Callback {
2222
private var dialog: AlertDialog? = null
23-
private val campaignId = campaign.getIdForLang(WikipediaApp.instance.appOrSystemLanguageCode) +
24-
if (DonationReminderHelper.isInEligibleCountry) {
25-
if (DonationReminderAbTest().isTestGroupUser()) "_reminderB" else "_reminderA"
26-
} else ""
23+
private val campaignIdOriginal = campaign.getIdForLang(WikipediaApp.instance.appOrSystemLanguageCode)
24+
private val campaignId = campaignIdOriginal + if (DonationReminderHelper.isInEligibleCountry) {
25+
if (DonationReminderAbTest().isTestGroupUser()) "_reminderB" else "_reminderA"
26+
} else ""
2727

2828
init {
2929
val campaignView = CampaignDialogView(context)
@@ -48,7 +48,7 @@ class CampaignDialog internal constructor(private val context: Context, val camp
4848
private fun dismissDialog(skipCampaign: Boolean = true) {
4949
// "Maybe later" option will show up the campaign after one day.
5050
if (skipCampaign) {
51-
Prefs.announcementShownDialogs = setOf(campaignId)
51+
Prefs.announcementShownDialogs = setOf(campaignIdOriginal)
5252
}
5353
dialog?.dismiss()
5454
}
@@ -74,13 +74,14 @@ class CampaignDialog internal constructor(private val context: Context, val camp
7474
override fun onNeutralAction() {
7575
DonorExperienceEvent.logAction("later_click", "article_banner", campaignId = campaignId)
7676
DonorExperienceEvent.logAction("reminder_toast", "article_banner", campaignId = campaignId)
77-
Prefs.announcementPauseTime = Date().time
7877
if (!DonationReminderHelper.isEnabled) {
78+
Prefs.announcementPauseTime = Date().time
7979
FeedbackUtil.showMessage(context as Activity, R.string.donation_campaign_maybe_later_snackbar)
8080
dismissDialog(false)
8181
return
8282
}
83-
onNeutralBtnClick?.invoke(campaignId)
83+
Prefs.announcementShownDialogs = setOf(campaignIdOriginal)
84+
onNeutralButtonClick?.invoke(campaignId)
8485
}
8586

8687
override fun onClose() {

0 commit comments

Comments
 (0)