Files
GitJournal/lib/iap/restore_purchase_button.dart
2023-02-09 16:00:29 +01:00

57 lines
1.4 KiB
Dart

/*
* SPDX-FileCopyrightText: 2019-2022 Vishesh Handa <me@vhanda.in>
*
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
import 'package:flutter/material.dart';
import 'package:gitjournal/iap/iap.dart';
import 'package:gitjournal/l10n.dart';
import 'package:gitjournal/logger/logger.dart';
import 'package:gitjournal/settings/app_config.dart';
import 'package:provider/provider.dart';
class RestorePurchaseButton extends StatefulWidget {
const RestorePurchaseButton({super.key});
@override
_RestorePurchaseButtonState createState() => _RestorePurchaseButtonState();
}
class _RestorePurchaseButtonState extends State<RestorePurchaseButton> {
bool restored = false;
@override
Widget build(BuildContext context) {
return OutlinedButton(
onPressed: restored ? null : _restore,
child: Text(
context.loc.purchaseScreenRestore,
style: Theme.of(context).textTheme.bodyMedium,
),
);
}
Future<void> _restore() async {
setState(() {
restored = true;
});
var config = context.read<AppConfig>();
config.addListener(_configListener);
Log.i("Restoring Purchases");
GitJournalInAppPurchases.restorePurchases();
}
void _configListener() {
if (!mounted) return;
var config = context.read<AppConfig>();
if (config.proMode) {
Log.i("Restored Purchases");
Navigator.of(context).pop();
}
}
}