@@ -9,15 +9,14 @@ class ProductsView extends StatefulWidget {
99}
1010
1111class _ProductsViewState extends State <ProductsView > {
12- var _products = < String , QProduct > {} ;
12+ var _products = < QProduct > [] ;
1313 QOfferings _offerings;
1414 StreamSubscription <Map <String , QPermission >> _deferredPurchasesStream;
1515 StreamSubscription <String > _promoPurchasesStream;
1616
1717 @override
1818 void initState () {
1919 super .initState ();
20- _loadProducts ();
2120 _loadOfferings ();
2221
2322 _deferredPurchasesStream =
@@ -28,7 +27,7 @@ class _ProductsViewState extends State<ProductsView> {
2827 try {
2928 final permissions = await Qonversion .promoPurchase (promoPurchaseId);
3029 // Get Qonversion product by App Store ID
31- final qProduct = _products.values. firstWhere (
30+ final qProduct = _products.firstWhere (
3231 (element) => element.storeId == promoPurchaseId,
3332 orElse: () => null );
3433 // Get permission by Qonversion product
@@ -65,7 +64,7 @@ class _ProductsViewState extends State<ProductsView> {
6564 : ListView (
6665 children: [
6766 if (_products != null )
68- for (final p in _products.values ) _productWidget (p),
67+ for (final p in _products) _productWidget (p),
6968 if (_offerings != null ) _offeringsWidget (_offerings),
7069 if (_products != null )
7170 Padding (
@@ -80,9 +79,10 @@ class _ProductsViewState extends State<ProductsView> {
8079 textColor: Colors .black,
8180 onPressed: () async {
8281 try {
82+ final ids = _products.map ((product) => product.storeId).toList ();
8383 final res =
84- await Qonversion .checkTrialIntroEligibility (
85- _products.keys. toList ());
84+ await Qonversion .checkTrialIntroEligibility (ids);
85+
8686 print (res.map (
8787 (key, value) => MapEntry (key, value.status)));
8888 } catch (e) {
@@ -97,19 +97,20 @@ class _ProductsViewState extends State<ProductsView> {
9797 );
9898 }
9999
100- Future <void > _loadProducts () async {
100+ Future <void > _loadOfferings () async {
101101 try {
102- _products = await Qonversion .products ();
102+ _offerings = await Qonversion .offerings ();
103+ _loadProducts ();
103104 setState (() {});
104105 } catch (e) {
105106 print (e);
106- _products = {};
107107 }
108108 }
109109
110- Future <void > _loadOfferings () async {
110+ Future <void > _loadProducts () async {
111111 try {
112- _offerings = await Qonversion .offerings ();
112+ var mainOffering = _offerings.offeringForIdentifier ("main" );
113+ _products = mainOffering.products;
113114 setState (() {});
114115 } catch (e) {
115116 print (e);
0 commit comments