Add package in_app_purchase (not implemented - but otherwise google-play wont verify)

This commit is contained in:
2025-06-07 22:32:38 +02:00
parent f39bfe6106
commit beff4d980b
5 changed files with 86 additions and 8 deletions

View File

@@ -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(