restorePurchases method
Future<void>
restorePurchases(
{ - bool force = true,
})
override
Implementation
@override
Future<void> restorePurchases({bool force = true}) async {
try {
final load = !purchaseStream.hasValue || force;
logger.d("StoreRepository: restorePurchases: load = $load");
if (load) {
var retryAttempt = 0;
await RetryStream(
() => Future<void>.delayed(
Duration(milliseconds: retryAttempt * 1000))
.asStream()
.doOnData((event) {
logger.d(
"StoreRepository: restorePurchases: try = $retryAttempt");
retryAttempt++;
}).asyncMap((value) => inAppPurchase.restorePurchases()),
5)
.first;
}
} catch (error, stacktrace) {
logger.error(
"StoreRepository: restorePurchases: $error",
error: error,
stackTrace: stacktrace,
);
}
}