mirror of
https://github.com/GitJournal/GitJournal.git
synced 2025-06-29 18:38:36 +08:00
PurchaseWidget: Log the exceptions
This commit is contained in:
@ -8,6 +8,7 @@ import 'package:in_app_purchase/in_app_purchase.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
import 'package:gitjournal/analytics.dart';
|
import 'package:gitjournal/analytics.dart';
|
||||||
|
import 'package:gitjournal/error_reporting.dart';
|
||||||
import 'package:gitjournal/iap.dart';
|
import 'package:gitjournal/iap.dart';
|
||||||
import 'package:gitjournal/settings.dart';
|
import 'package:gitjournal/settings.dart';
|
||||||
import 'package:gitjournal/utils/logger.dart';
|
import 'package:gitjournal/utils/logger.dart';
|
||||||
@ -38,11 +39,11 @@ class PurchaseButton extends StatelessWidget {
|
|||||||
child: Text(text, textAlign: TextAlign.center),
|
child: Text(text, textAlign: TextAlign.center),
|
||||||
color: Theme.of(context).primaryColor,
|
color: Theme.of(context).primaryColor,
|
||||||
padding: const EdgeInsets.fromLTRB(32.0, 16.0, 32.0, 16.0),
|
padding: const EdgeInsets.fromLTRB(32.0, 16.0, 32.0, 16.0),
|
||||||
onPressed: product != null ? () => _initPurchase(context) : null,
|
onPressed: product != null ? () => _reportExceptions(context) : null,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initPurchase(BuildContext context) async {
|
Future<void> _initPurchase(BuildContext context) async {
|
||||||
var purchaseParam = PurchaseParam(productDetails: product);
|
var purchaseParam = PurchaseParam(productDetails: product);
|
||||||
var sentSuccess = await InAppPurchaseConnection.instance
|
var sentSuccess = await InAppPurchaseConnection.instance
|
||||||
.buyNonConsumable(purchaseParam: purchaseParam);
|
.buyNonConsumable(purchaseParam: purchaseParam);
|
||||||
@ -51,10 +52,15 @@ class PurchaseButton extends StatelessWidget {
|
|||||||
var err = "Failed to send purchase request";
|
var err = "Failed to send purchase request";
|
||||||
var dialog = PurchaseFailedDialog(err);
|
var dialog = PurchaseFailedDialog(err);
|
||||||
await showDialog(context: context, builder: (context) => dialog);
|
await showDialog(context: context, builder: (context) => dialog);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return null;
|
void _reportExceptions(BuildContext context) async {
|
||||||
|
try {
|
||||||
|
await _initPurchase(context);
|
||||||
|
} catch (err, stackTrace) {
|
||||||
|
logException(err, stackTrace);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user