v1.1.26 android release

This commit is contained in:
bossanyit
2022-11-13 09:43:49 +01:00
parent 20c481298f
commit 6ef311286c
11 changed files with 107 additions and 83 deletions
+42 -18
View File
@@ -15,7 +15,10 @@ import 'package:aitrainer_app/util/purchases.dart';
import 'package:aitrainer_app/util/track.dart';
import 'package:bloc/bloc.dart';
import 'package:equatable/equatable.dart';
import 'package:flutter/services.dart';
import 'package:purchases_flutter/errors.dart';
import 'package:purchases_flutter/models/offering_wrapper.dart';
import 'package:sentry_flutter/sentry_flutter.dart';
part 'sales_event.dart';
part 'sales_state.dart';
@@ -50,25 +53,46 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
final int productId = event.productId;
log("Requesting purchase for: " + productId.toString());
Track().track(TrackingEvent.purchase_request);
final Product? selectedProduct = this.getSelectedProduct(productId);
log("SelectedProduct for purchase $selectedProduct");
if (selectedProduct != null) {
await RevenueCatPurchases().makePurchase(selectedProduct);
if (Cache().hasPurchased) {
Purchase purchase = Purchase(customerId: Cache().userLoggedIn!.customerId!, productId: productId);
purchase.dateAdd = DateTime.now();
purchase.purchaseSum = 0;
purchase.currency = "EUR";
await PurchaseApi().savePurchase(purchase);
Track().track(TrackingEvent.purchase_successful, eventValue: selectedProduct.localizedPrice.toString());
CustomerRepository customerRepository = CustomerRepository();
customerRepository.customer = Cache().userLoggedIn;
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
await mauticRepository.sendMauticPurchase();
try {
final Product? selectedProduct = this.getSelectedProduct(productId);
log("SelectedProduct for purchase $selectedProduct");
if (selectedProduct != null) {
await RevenueCatPurchases().makePurchase(selectedProduct);
if (Cache().hasPurchased) {
Purchase purchase = Purchase(customerId: Cache().userLoggedIn!.customerId!, productId: productId);
purchase.dateAdd = DateTime.now();
purchase.purchaseSum = 0;
purchase.currency = "EUR";
await PurchaseApi().savePurchase(purchase);
Track().track(TrackingEvent.purchase_successful, eventValue: selectedProduct.localizedPrice.toString());
CustomerRepository customerRepository = CustomerRepository();
customerRepository.customer = Cache().userLoggedIn;
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
await mauticRepository.sendMauticPurchase();
}
emit(SalesSuccessful());
} else {
emit(SalesError(message: "No selected product"));
}
emit(SalesSuccessful());
} else {
emit(SalesError(message: "No selected product"));
} on PlatformException catch (e) {
await Sentry.captureException(e);
var errorCode = PurchasesErrorHelper.getErrorCode(e);
if (errorCode == PurchasesErrorCode.invalidReceiptError) {
log("iOS Sandbox invalid receipt");
Cache().hasPurchased = true;
log(" -- Purchased -- ");
return;
}
log(e.toString());
if (errorCode == PurchasesErrorCode.purchaseCancelledError) {
emit(SalesError(message: "Purchase was cancelled"));
} else {
emit(SalesError(message: "Purchase was not successful"));
}
} on Exception catch (e) {
log(e.toString());
emit(SalesError(message: "Purchase was not successful"));
}
}
+17 -12
View File
@@ -25,18 +25,23 @@ class SessionBloc extends Bloc<SessionEvent, SessionState> with Logging {
log(" -------- Session starting...");
emit(SessionLoading());
this.settingsBloc = event.settingsBloc;
await session.fetchSessionAndNavigate();
FirebaseApi().setupRemoteConfig();
String lang = AppLanguage().appLocal.languageCode;
log("Change lang to $lang");
settingsBloc!.add(SettingsChangeLanguage(language: lang));
final iTunes = ITunesSearchAPI();
final resultsFuture = iTunes.lookupByBundleId('com.aitrainer.app');
resultsFuture.then((results) {
print('iTunes results: $results');
});
emit(SessionReady());
try {
this.settingsBloc = event.settingsBloc;
await session.fetchSessionAndNavigate();
FirebaseApi().setupRemoteConfig();
String lang = AppLanguage().appLocal.languageCode;
log("Change lang to $lang");
settingsBloc!.add(SettingsChangeLanguage(language: lang));
final iTunes = ITunesSearchAPI();
final resultsFuture = iTunes.lookupByBundleId('com.aitrainer.app');
resultsFuture.then((results) {
print('iTunes results: $results');
});
} on Exception catch (e) {
emit(SessionFailure(message: e.toString()));
} finally {
emit(SessionReady());
}
}
@override