Add package in_app_purchase
(not implemented - but otherwise google-play wont verify)
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:in_app_purchase/in_app_purchase.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:simplecloudnotifier/main_messaging.dart';
|
||||
import 'package:simplecloudnotifier/main_utils.dart';
|
||||
@@ -151,11 +153,48 @@ void main() async {
|
||||
);
|
||||
}
|
||||
|
||||
class SCNApp extends StatelessWidget {
|
||||
class SCNApp extends StatefulWidget {
|
||||
SCNApp({super.key});
|
||||
|
||||
static var materialKey = GlobalKey<NavigatorState>();
|
||||
|
||||
@override
|
||||
State<SCNApp> createState() => _SCNAppState();
|
||||
}
|
||||
|
||||
class _SCNAppState extends State<SCNApp> {
|
||||
StreamSubscription<List<PurchaseDetails>>? _purchaseSubscription;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
_purchaseSubscription = InAppPurchase.instance.purchaseStream.listen(
|
||||
purchaseUpdated,
|
||||
onDone: () => _purchaseSubscription?.cancel(),
|
||||
onError: purchaseError,
|
||||
);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_purchaseSubscription?.cancel();
|
||||
_purchaseSubscription = null;
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
void purchaseUpdated(List<PurchaseDetails> purchaseDetailsList) {
|
||||
// see https://pub.dev/packages/in_app_purchase
|
||||
|
||||
for (var purchaseDetails in purchaseDetailsList) {
|
||||
ApplicationLog.debug('Purchase ${purchaseDetails.productID} is ${purchaseDetails.status.toString()}'); //TODO
|
||||
}
|
||||
}
|
||||
|
||||
void purchaseError(dynamic error) {
|
||||
// TODO handle error here.
|
||||
ApplicationLog.error('Purchase error: ${error.toString()}', trace: StackTrace.current);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return ToastificationWrapper(
|
||||
|
Reference in New Issue
Block a user