markNudgeDismissed method
Fired when the nudge is dismissed — by the user or programmatically.
Implementation
void markNudgeDismissed(CEPTriggerPayload payload) {
// Already settled `superseded` with its own events (SR44/SR45).
if (_supersededNudges.remove(payload)) {
clearPendingNudgeDismiss(payload.cepCampaignId);
return;
}
if (identical(_nudgeRoutePayload, payload)) {
_nudgeRoute = null;
_nudgeRoutePayload = null;
}
final reason = _pendingNudgeDismissCampaignId == payload.cepCampaignId &&
_pendingNudgeDismissReason != null
? _pendingNudgeDismissReason!
: DismissReason.userClose;
_pendingNudgeDismissCampaignId = null;
_pendingNudgeDismissReason = null;
_events.toBoth(
ExperienceDismissed(reason: reason),
NudgeDismissed(
dismissReason: reason.wire,
dwellMs: _dwellTracker.consumeDwellMs(payload.cepCampaignId),
),
payload,
);
}