Skip to content

Commit 53cfee3

Browse files
add provider usage to README.md
1 parent 6842573 commit 53cfee3

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

README.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,42 @@ StreamBuilder<LinkFiveActiveSubscriptionData?>(
8686
)
8787
```
8888

89+
## Provider usage
90+
```dart
91+
class LinkFiveProvider extends ChangeNotifier {
92+
LinkFivePurchasesMain linkFivePurchases = LinkFivePurchasesMain();
93+
94+
LinkFiveSubscriptionData? linkFiveSubscriptionData = null;
95+
LinkFiveActiveSubscriptionData? linkFiveActiveSubscriptionData = null;
96+
97+
List<StreamSubscription> _streams = [];
98+
99+
LinkFiveProvider(Keys keys) {
100+
linkFivePurchases.init(keys.linkFiveApiKey, env: LinkFiveEnvironment.STAGING);
101+
linkFivePurchases.fetchSubscriptions();
102+
_streams.add(linkFivePurchases.listenOnSubscriptionData().listen(_subscriptionDataUpdate));
103+
_streams.add(linkFivePurchases.listenOnActiveSubscriptionData().listen(_activeSubscriptionDataUpdate));
104+
}
105+
106+
void _subscriptionDataUpdate(LinkFiveSubscriptionData? data) async {
107+
linkFiveSubscriptionData = data;
108+
notifyListeners();
109+
}
110+
111+
void _activeSubscriptionDataUpdate(LinkFiveActiveSubscriptionData? data) {
112+
linkFiveActiveSubscriptionData = data;
113+
notifyListeners();
114+
}
115+
116+
@override
117+
void dispose() {
118+
_streams.forEach((element) async { await element.cancel(); });
119+
_streams = [];
120+
super.dispose();
121+
}
122+
}
123+
```
124+
89125
## Easy Integration with the Paywall UI package
90126

91127
Integrate linkfive_purchases with package [in_app_purchases_paywall_ui](https://pub.dev/packages/in_app_purchases_paywall_ui).

0 commit comments

Comments
 (0)