restorePastPurchases method
Implementation
Future<bool> restorePastPurchases(
BuildContext context,
ListenerManager listenerManager,
) async {
try {
final iap = FlutterInappPurchase.instance;
// 🔄 Trigger platform restore flow (iOS-compliant)
await iap.restorePurchases();
// 🧾 Get all available (non-consumable + subscription) purchases
final purchases = await iap.getAvailablePurchases();
log('Available purchases -------------> ${purchases.length}');
for (final purchase in purchases) {
// ✅ Notify listeners for each valid purchase
listenerManager.notifyProStatusChangedListeners(purchase);
// ✅ Add purchase item to your PurchaseHandler
PurchaseHandler.instance.addPurchasedProduct(
purchase.productId,
purchase,
);
}
return true;
} catch (e) {
if (kDebugMode) {
print("Failed to restore past purchases: $e");
}
return false;
}
}