dismissAnchorlessFailure method

void dismissAnchorlessFailure(
  1. int guideToken, {
  2. DropReason dropReason = DropReason.error,
})

Implementation

void dismissAnchorlessFailure(
  int guideToken, {
  DropReason dropReason = DropReason.error,
}) {
  final state = _orchestrator.state;
  if (state == null || state.token != guideToken) return;
  if (_dwell.elapsedMs(state.payload.cepCampaignId) == null) {
    _orchestrator.dismiss();
    final drop = _onDropBeforeShown;
    if (drop != null) {
      drop(state.payload, dropReason);
      return;
    }
    _events().toCep(
      const ExperienceDismissed(reason: DismissReason.autoTimeout),
      state.payload,
    );
    return;
  }
  if (_view.isShowcaseRunning) {
    dismiss(reason: DismissReason.autoTimeout);
  } else {
    // The anchorless image load TTL expired: keep its auto_timeout reason.
    _pendingDismissReason = DismissReason.autoTimeout;
    _finish(completed: false);
  }
}