WT1.1.22+5 matic events
This commit is contained in:
parent
e34add8185
commit
4e9afbd4b3
@ -388,7 +388,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3;
|
CURRENT_PROJECT_VERSION = 5;
|
||||||
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@ -531,7 +531,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3;
|
CURRENT_PROJECT_VERSION = 5;
|
||||||
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
@ -566,7 +566,7 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3;
|
CURRENT_PROJECT_VERSION = 5;
|
||||||
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
DEVELOPMENT_TEAM = SFJJBDCU6Z;
|
||||||
ENABLE_BITCODE = NO;
|
ENABLE_BITCODE = NO;
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'package:aitrainer_app/repository/mautic_repository.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
|
|
||||||
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
|
||||||
@ -154,6 +155,8 @@ class ExerciseNewBloc extends Bloc<ExerciseNewEvent, ExerciseNewState> with Logg
|
|||||||
}
|
}
|
||||||
exerciseRepository.end = DateTime.now();
|
exerciseRepository.end = DateTime.now();
|
||||||
await exerciseRepository.addExercise();
|
await exerciseRepository.addExercise();
|
||||||
|
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
|
||||||
|
await mauticRepository.sendMauticExercise();
|
||||||
// exerciseRepository.initExercise();
|
// exerciseRepository.initExercise();
|
||||||
menuBloc.add(MenuTreeDown(parent: 0));
|
menuBloc.add(MenuTreeDown(parent: 0));
|
||||||
Cache().initBadges();
|
Cache().initBadges();
|
||||||
|
@ -4,7 +4,9 @@ import 'dart:io';
|
|||||||
import 'package:aitrainer_app/model/cache.dart';
|
import 'package:aitrainer_app/model/cache.dart';
|
||||||
import 'package:aitrainer_app/model/product.dart';
|
import 'package:aitrainer_app/model/product.dart';
|
||||||
import 'package:aitrainer_app/model/purchase.dart';
|
import 'package:aitrainer_app/model/purchase.dart';
|
||||||
|
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||||
import 'package:aitrainer_app/repository/description_repository.dart';
|
import 'package:aitrainer_app/repository/description_repository.dart';
|
||||||
|
import 'package:aitrainer_app/repository/mautic_repository.dart';
|
||||||
import 'package:aitrainer_app/repository/split_test_respository.dart';
|
import 'package:aitrainer_app/repository/split_test_respository.dart';
|
||||||
import 'package:aitrainer_app/service/logging.dart';
|
import 'package:aitrainer_app/service/logging.dart';
|
||||||
import 'package:aitrainer_app/service/purchase_service.dart';
|
import 'package:aitrainer_app/service/purchase_service.dart';
|
||||||
@ -88,6 +90,10 @@ class SalesBloc extends Bloc<SalesEvent, SalesState> with Logging {
|
|||||||
purchase.currency = "EUR";
|
purchase.currency = "EUR";
|
||||||
await PurchaseApi().savePurchase(purchase);
|
await PurchaseApi().savePurchase(purchase);
|
||||||
Track().track(TrackingEvent.purchase_successful, eventValue: selectedProduct.localizedPrice.toString());
|
Track().track(TrackingEvent.purchase_successful, eventValue: selectedProduct.localizedPrice.toString());
|
||||||
|
CustomerRepository customerRepository = CustomerRepository();
|
||||||
|
customerRepository.customer = Cache().userLoggedIn;
|
||||||
|
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
|
||||||
|
await mauticRepository.sendMauticPurchase();
|
||||||
}
|
}
|
||||||
yield SalesSuccessful();
|
yield SalesSuccessful();
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,7 +3,9 @@ import 'dart:async';
|
|||||||
import 'package:aitrainer_app/bloc/test_set_execute/test_set_execute_bloc.dart';
|
import 'package:aitrainer_app/bloc/test_set_execute/test_set_execute_bloc.dart';
|
||||||
import 'package:aitrainer_app/model/cache.dart';
|
import 'package:aitrainer_app/model/cache.dart';
|
||||||
import 'package:aitrainer_app/model/exercise_type.dart';
|
import 'package:aitrainer_app/model/exercise_type.dart';
|
||||||
|
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||||
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
import 'package:aitrainer_app/repository/exercise_repository.dart';
|
||||||
|
import 'package:aitrainer_app/repository/mautic_repository.dart';
|
||||||
import 'package:aitrainer_app/util/enums.dart';
|
import 'package:aitrainer_app/util/enums.dart';
|
||||||
import 'package:aitrainer_app/util/track.dart';
|
import 'package:aitrainer_app/util/track.dart';
|
||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
@ -52,6 +54,11 @@ class TestSetNewBloc extends Bloc<TestSetNewEvent, TestSetNewState> {
|
|||||||
await exerciseRepository.addExercise();
|
await exerciseRepository.addExercise();
|
||||||
executeBloc.add(
|
executeBloc.add(
|
||||||
TestSetExecuteExerciseFinished(exerciseTypeId: exerciseType.exerciseTypeId, quantity: quantity, unitQuantity: unitQuantity));
|
TestSetExecuteExerciseFinished(exerciseTypeId: exerciseType.exerciseTypeId, quantity: quantity, unitQuantity: unitQuantity));
|
||||||
|
CustomerRepository customerRepository = CustomerRepository();
|
||||||
|
customerRepository.customer = Cache().userLoggedIn;
|
||||||
|
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
|
||||||
|
await mauticRepository.sendMauticExercise();
|
||||||
|
|
||||||
Track().track(TrackingEvent.test_set_new, eventValue: exerciseType.name);
|
Track().track(TrackingEvent.test_set_new, eventValue: exerciseType.name);
|
||||||
}
|
}
|
||||||
} on Exception catch (e) {
|
} on Exception catch (e) {
|
||||||
|
@ -10,6 +10,8 @@ import 'package:aitrainer_app/model/exercise_type.dart';
|
|||||||
import 'package:aitrainer_app/model/training_plan.dart';
|
import 'package:aitrainer_app/model/training_plan.dart';
|
||||||
import 'package:aitrainer_app/model/training_plan_detail.dart';
|
import 'package:aitrainer_app/model/training_plan_detail.dart';
|
||||||
import 'package:aitrainer_app/model/workout_menu_tree.dart';
|
import 'package:aitrainer_app/model/workout_menu_tree.dart';
|
||||||
|
import 'package:aitrainer_app/repository/customer_repository.dart';
|
||||||
|
import 'package:aitrainer_app/repository/mautic_repository.dart';
|
||||||
import 'package:aitrainer_app/repository/training_plan_repository.dart';
|
import 'package:aitrainer_app/repository/training_plan_repository.dart';
|
||||||
import 'package:aitrainer_app/service/exercise_service.dart';
|
import 'package:aitrainer_app/service/exercise_service.dart';
|
||||||
import 'package:aitrainer_app/util/app_language.dart';
|
import 'package:aitrainer_app/util/app_language.dart';
|
||||||
@ -143,6 +145,10 @@ class TrainingPlanBloc extends Bloc<TrainingPlanEvent, TrainingPlanState> {
|
|||||||
Cache().myTrainingPlan = _myPlan;
|
Cache().myTrainingPlan = _myPlan;
|
||||||
await Cache().saveMyTrainingPlan();
|
await Cache().saveMyTrainingPlan();
|
||||||
}
|
}
|
||||||
|
CustomerRepository customerRepository = CustomerRepository();
|
||||||
|
customerRepository.customer = Cache().userLoggedIn;
|
||||||
|
MauticRepository mauticRepository = MauticRepository(customerRepository: customerRepository);
|
||||||
|
await mauticRepository.sendMauticExercise();
|
||||||
Track().track(TrackingEvent.training_plan_execute, eventValue: event.detail.exerciseType!.name);
|
Track().track(TrackingEvent.training_plan_execute, eventValue: event.detail.exerciseType!.name);
|
||||||
|
|
||||||
if (isDayDone()) {
|
if (isDayDone()) {
|
||||||
|
@ -763,19 +763,22 @@ class Cache with Logging {
|
|||||||
setTrainingPlanDays(value) => this._trainingPlanDays = value;
|
setTrainingPlanDays(value) => this._trainingPlanDays = value;
|
||||||
|
|
||||||
bool canTrial() {
|
bool canTrial() {
|
||||||
|
bool can = true;
|
||||||
if (Cache().userLoggedIn == null) {
|
if (Cache().userLoggedIn == null) {
|
||||||
return false;
|
can = false;
|
||||||
}
|
}
|
||||||
for (var element in _purchases) {
|
for (var element in _purchases) {
|
||||||
if (element.customerId == Cache().userLoggedIn!.customerId) {
|
if (element.customerId == Cache().userLoggedIn!.customerId) {
|
||||||
return false;
|
can = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userLoggedIn!.trialDate != null) {
|
if (userLoggedIn!.trialDate != null) {
|
||||||
return false;
|
can = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
print("Can Trial $can");
|
||||||
|
|
||||||
|
return can;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,8 @@ class Mautic {
|
|||||||
int? databaseId;
|
int? databaseId;
|
||||||
String? subscriptionDate;
|
String? subscriptionDate;
|
||||||
String? language;
|
String? language;
|
||||||
|
String? purchaseDate;
|
||||||
|
String? exerciseDate;
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
"formId": this.formId,
|
"formId": this.formId,
|
||||||
@ -31,6 +33,8 @@ class Mautic {
|
|||||||
form += this.subscriptionDate == null ? "" : "&mauticform[subscribed]=${this.subscriptionDate}";
|
form += this.subscriptionDate == null ? "" : "&mauticform[subscribed]=${this.subscriptionDate}";
|
||||||
form += this.databaseId == null ? "" : "&mauticform[database_id]=${this.databaseId}";
|
form += this.databaseId == null ? "" : "&mauticform[database_id]=${this.databaseId}";
|
||||||
form += this.language == null ? "" : "&mauticform[language]=${this.language}";
|
form += this.language == null ? "" : "&mauticform[language]=${this.language}";
|
||||||
|
form += this.purchaseDate == null ? "" : "&mauticform[purchase_date]=${this.purchaseDate}";
|
||||||
|
form += this.exerciseDate == null ? "" : "&mauticform[last_exercise]=${this.exerciseDate}";
|
||||||
|
|
||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,32 @@ class MauticRepository {
|
|||||||
|
|
||||||
await MauticApi().sendMauticForm(mautic);
|
await MauticApi().sendMauticForm(mautic);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> sendMauticPurchase() async {
|
||||||
|
Mautic mautic = Mautic();
|
||||||
|
mautic.formId = 4;
|
||||||
|
mautic.firstname = customerRepository.customer!.firstname == null ? "" : customerRepository.customer!.firstname!;
|
||||||
|
mautic.lastname = customerRepository.customer!.name == null ? "" : customerRepository.customer!.name!;
|
||||||
|
mautic.email = customerRepository.customer!.email == null ? "" : customerRepository.customer!.email!;
|
||||||
|
if (mautic.email == null || mautic.email!.contains("privaterelay.appleid.com")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mautic.purchaseDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.now());
|
||||||
|
|
||||||
|
await MauticApi().sendMauticForm(mautic);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> sendMauticExercise() async {
|
||||||
|
Mautic mautic = Mautic();
|
||||||
|
mautic.formId = 5;
|
||||||
|
mautic.firstname = customerRepository.customer!.firstname == null ? "" : customerRepository.customer!.firstname!;
|
||||||
|
mautic.lastname = customerRepository.customer!.name == null ? "" : customerRepository.customer!.name!;
|
||||||
|
mautic.email = customerRepository.customer!.email == null ? "" : customerRepository.customer!.email!;
|
||||||
|
if (mautic.email == null || mautic.email!.contains("privaterelay.appleid.com")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
mautic.exerciseDate = DateFormat('yyyy-MM-dd HH:mm:ss').format(DateTime.now());
|
||||||
|
|
||||||
|
await MauticApi().sendMauticForm(mautic);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:aitrainer_app/service/firebase_api.dart';
|
|
||||||
import 'package:aitrainer_app/util/app_language.dart';
|
import 'package:aitrainer_app/util/app_language.dart';
|
||||||
import 'package:aitrainer_app/util/app_localization.dart';
|
import 'package:aitrainer_app/util/app_localization.dart';
|
||||||
import 'package:aitrainer_app/service/api.dart';
|
import 'package:aitrainer_app/service/api.dart';
|
||||||
|
@ -116,6 +116,8 @@ class SettingsPage extends StatelessWidget with Trans {
|
|||||||
inactiveFgColor: Colors.grey[900],
|
inactiveFgColor: Colors.grey[900],
|
||||||
labels: [t('Live-Server'), t('Test-Server')],
|
labels: [t('Live-Server'), t('Test-Server')],
|
||||||
onToggle: (index) {
|
onToggle: (index) {
|
||||||
|
final String live = index == 0 ? "live" : "test";
|
||||||
|
print("Server setting to: $live");
|
||||||
settingsBloc.add(SettingsSetServer(live: index == 0));
|
settingsBloc.add(SettingsSetServer(live: index == 0));
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -325,46 +325,6 @@ class _MenuPageWidgetState extends State<MenuPageWidget> with Trans, Logging {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
/* Cache().myTrainingPlan != null
|
|
||||||
? GestureDetector(
|
|
||||||
onTap: () => showDialog(
|
|
||||||
context: context,
|
|
||||||
builder: (BuildContext context) {
|
|
||||||
return DialogCommon(
|
|
||||||
title: t("You have an active Training Plan"),
|
|
||||||
descriptions: Cache().myTrainingPlan!.name != null ? Cache().myTrainingPlan!.name! : "",
|
|
||||||
description2: t("Press OK to continue"),
|
|
||||||
text: "OK",
|
|
||||||
onTap: () {
|
|
||||||
Navigator.of(context).pop();
|
|
||||||
if (Cache().myTrainingPlan != null) {
|
|
||||||
final TrainingPlanBloc bloc = BlocProvider.of<TrainingPlanBloc>(context);
|
|
||||||
bloc.setMyPlan(Cache().myTrainingPlan);
|
|
||||||
Navigator.of(context).popAndPushNamed("myTrainingPlanExecute");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onCancel: () => {
|
|
||||||
Navigator.of(context).pop(),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}),
|
|
||||||
child: AnimatedBuilder(
|
|
||||||
animation: animation,
|
|
||||||
builder: (context, snapshot) {
|
|
||||||
return Center(
|
|
||||||
child: Container(
|
|
||||||
width: animation.value,
|
|
||||||
height: animation.value,
|
|
||||||
child: Image.asset("asset/image/continue.png"),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}))
|
|
||||||
: Offstage(), */
|
|
||||||
/* activeExercisePlan
|
|
||||||
? SizedBox(
|
|
||||||
width: 10,
|
|
||||||
)
|
|
||||||
: Offstage(), */
|
|
||||||
Cache().activeExercisePlan != null
|
Cache().activeExercisePlan != null
|
||||||
? GestureDetector(
|
? GestureDetector(
|
||||||
onTap: () => showDialog(
|
onTap: () => showDialog(
|
||||||
|
@ -15,7 +15,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
||||||
# Read more about iOS versioning at
|
# Read more about iOS versioning at
|
||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||||
version: 1.1.22+93
|
version: 1.1.22+94
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.12.0 <3.0.0"
|
sdk: ">=2.12.0 <3.0.0"
|
||||||
|
Loading…
Reference in New Issue
Block a user