handleRestorePurchasesEvent method

Stream<FastStoreBlocState> handleRestorePurchasesEvent()

Handles the FastStoreBlocEventType.restorePurchases event to restore purchases from the store.

Implementation

Stream<FastStoreBlocState> handleRestorePurchasesEvent() async* {
  if (!_isRestoringPurchases && !_isPurchasePending) {
    _logger.debug('Restoring purchases...');
    _isRestoringPurchases = true;

    yield currentState.copyWith(isRestoringPurchases: true);

    // Purchase status handled by _listenToPurchases
    await retry<void>(
      task: () async => _iapService!.restorePurchases(),
      taskTimeout: kFastAsyncTimeout,
      maxAttempts: 2,
    );
  }
}