handlePurchasesRestoredEvent method

Stream<FastStoreBlocState> handlePurchasesRestoredEvent(
  1. FastStoreBlocPayload payload
)

Handles the FastStoreBlocEventType.purchaseRestored event when a purchase has been successfully restored.

Implementation

Stream<FastStoreBlocState> handlePurchasesRestoredEvent(
  FastStoreBlocPayload payload,
) async* {
  if (_isRestoringPurchases) {
    _logger.debug('Purchase restored');
    _isRestoringPurchases = false;

    if (payload.purchaseDetails != null) {
      final purchase = FastInAppPurchase.fromPurchaseDetails(
        payload.purchaseDetails!,
      );

      await _iapDataProvider.enablePurchaseWithProductId(purchase.productId);

      yield currentState.copyWith(
        purchases: [...currentState.purchases, purchase],
        isRestoringPurchases: false,
      );
    } else {
      yield currentState.copyWith(isRestoringPurchases: false);
    }
  }
}