markNudgeDismissed method

void markNudgeDismissed(
  1. CEPTriggerPayload payload
)

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,
  );
}