Files
GitJournal/lib/iap.dart
Vishesh Handa 516768b692 iap: Allow exp to be null
Not sure how this can ever happen, but it's clearly being reported in
Sentry.
2020-05-02 13:33:21 +02:00

37 lines
1.2 KiB
Dart

import 'package:gitjournal/utils/logger.dart';
import 'package:purchases_flutter/purchases_flutter.dart';
import 'package:gitjournal/settings.dart';
import 'package:gitjournal/.env.dart';
class InAppPurchases {
static void confirmProPurchase() async {
var currentDt = DateTime.now().toUtc().toIso8601String();
var exp = Settings.instance.proExpirationDate;
if (exp != null && exp.isNotEmpty && exp.compareTo(currentDt) > 0) {
print("Not checking PurchaseInfo as exp = $exp and cur = $currentDt");
return;
}
Purchases.setDebugLogsEnabled(false);
await Purchases.setup(
environment['revenueCat'],
appUserId: Settings.instance.pseudoId,
);
PurchaserInfo purchaserInfo = await Purchases.getPurchaserInfo();
print("Got PurchaserInfo $purchaserInfo");
var isPro = purchaserInfo.entitlements.active.containsKey("pro");
print("IsPro $isPro");
if (Settings.instance.proMode != isPro) {
Log.i("Pro mode changed to $isPro");
Settings.instance.proMode = isPro;
Settings.instance.save();
} else {
Settings.instance.proExpirationDate = purchaserInfo.latestExpirationDate;
Settings.instance.save();
}
}
}