This commit is contained in:
Vadim 2023-09-25 21:30:05 +02:00
parent a0a4affa8d
commit 159b98dfa2
2 changed files with 25 additions and 5 deletions

View file

@ -10,7 +10,7 @@ class IAPProduct {
final String storeId;
final IAPProductStatus status;
IAPProduct({
const IAPProduct({
required this.storeId,
this.status = IAPProductStatus.purchasable,
});

View file

@ -18,7 +18,12 @@ class IAPProductsProviderState extends State<IAPProductsProvider> {
@override
Widget build(BuildContext context) {
return IAPProducts(
products: const [],
products: [
IAPProduct(
storeId: IAPProductType.paidFeatures.storeId,
status: IAPProductStatus.purchased,
)
],
child: widget.child,
);
}
@ -35,13 +40,28 @@ class IAPProducts extends InheritedModel<IAPProductType> {
super.key,
});
static IAPProduct? productOf(BuildContext context, IAPProductType type) => null;
static IAPProduct? productOf(BuildContext context, IAPProductType type) {
final IAPProducts? result = InheritedModel.inheritFrom<IAPProducts>(context, aspect: type);
return result!._findProduct(type);
}
static bool isPurchased(BuildContext context, IAPProductType type) => false;
static bool isPurchased(BuildContext context, IAPProductType type) {
final IAPProducts? result = InheritedModel.inheritFrom<IAPProducts>(context, aspect: type);
return result!._findProduct(type)?.status == IAPProductStatus.purchased;
}
@override
bool updateShouldNotify(IAPProducts oldWidget) => false;
@override
bool updateShouldNotifyDependent(covariant IAPProducts oldWidget, Set<IAPProductType> dependencies) => false;
bool updateShouldNotifyDependent(IAPProducts oldWidget, Set<IAPProductType> dependencies) =>
false;
IAPProduct? _findProduct(IAPProductType type) {
try {
return products.firstWhere((element) => element.storeId == type.storeId);
} catch (_) {
return null;
}
}
}