WT1.1.4 build 45 android fb, iap
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:aitrainer_app/model/cache.dart';
|
||||
@@ -6,6 +7,7 @@ import 'package:aitrainer_app/model/product.dart';
|
||||
import 'package:aitrainer_app/model/product_test.dart';
|
||||
import 'package:aitrainer_app/service/logging.dart';
|
||||
import 'package:aitrainer_app/service/product_test_service.dart';
|
||||
import 'package:aitrainer_app/util/platform_purchase.dart';
|
||||
import 'package:bloc/bloc.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:flurry/flurry.dart';
|
||||
@@ -26,20 +28,46 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
|
||||
try {
|
||||
if (event is SalesLoad) {
|
||||
yield SalesLoading();
|
||||
Flurry.logEvent("SalesPageOpen");
|
||||
//Flurry.logEvent("SalesPageOpen");
|
||||
await PlatformPurchaseApi().initPurchasePlatformState();
|
||||
this.getProductSet();
|
||||
yield SalesReady();
|
||||
} else if (event is SalesPurchase) {
|
||||
final int productId = event.productId;
|
||||
trace("Requesting purchase for" + productId.toString());
|
||||
Flurry.logEvent("PurchaseRequest");
|
||||
//PlatformPurchaseApi().requestPurchase(null);
|
||||
//Flurry.logEvent("PurchaseRequest");
|
||||
PlatformPurchaseApi().purchase(getSelectedProduct(productId));
|
||||
}
|
||||
} on Exception catch (ex) {
|
||||
yield SalesError(message: ex.toString());
|
||||
}
|
||||
}
|
||||
|
||||
Product getSelectedProduct(int productId) {
|
||||
Product prod;
|
||||
for (var product in this.product2Display) {
|
||||
if (product.productId == productId) {
|
||||
prod = product;
|
||||
}
|
||||
}
|
||||
return prod;
|
||||
}
|
||||
|
||||
String getLocalizedPrice(String productId) {
|
||||
String price = "";
|
||||
for (var product in PlatformPurchaseApi().getIAPItems()) {
|
||||
if (Platform.isAndroid) {
|
||||
print("PlatformProduct " + product.toString());
|
||||
if (productId == product.productId) {
|
||||
price = product.localizedPrice;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return price;
|
||||
}
|
||||
|
||||
void getProductSet() {
|
||||
int productId = 0;
|
||||
this.tests = Cache().productTests;
|
||||
@@ -51,7 +79,7 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
|
||||
trace("Previous ProductTest: " + tests[0].toJson().toString());
|
||||
productId = tests[0].productId;
|
||||
for (var elem in Cache().products) {
|
||||
Product product = elem as Product;
|
||||
final Product product = elem as Product;
|
||||
if (product.productId == productId) {
|
||||
productSet = product.productSet;
|
||||
break;
|
||||
@@ -63,8 +91,11 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
|
||||
trace("ProductSet: " + productSet.toString());
|
||||
for (var elem in Cache().products) {
|
||||
Product product = elem as Product;
|
||||
|
||||
if (product.productSet == productSet) {
|
||||
productId = product.productId;
|
||||
final String platformProductId = Platform.isAndroid ? product.productIdAndroid : product.productIdIos;
|
||||
product.localizedPrice = getLocalizedPrice(platformProductId);
|
||||
product2Display.add(product);
|
||||
}
|
||||
}
|
||||
@@ -76,7 +107,7 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
|
||||
productTest.productId = productId;
|
||||
productTest.customerId = Cache().userLoggedIn.customerId;
|
||||
productTest.dateView = DateTime.now();
|
||||
ProductTestApi().saveProductTest(productTest);
|
||||
Cache().productTests.add(productTest);
|
||||
//ProductTestApi().saveProductTest(productTest);
|
||||
//Cache().productTests.add(productTest);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user