WT 1.1.26+3 bloc migration

This commit is contained in:
Tibor Bossanyi (Freelancer)
2022-04-15 08:47:32 +02:00
parent 60df0bcf2d
commit 225172f950
47 changed files with 1527 additions and 1620 deletions
+61 -50
View File
@@ -1,4 +1,3 @@
import 'dart:async';
import 'package:aitrainer_app/bloc/menu/menu_bloc.dart';
import 'package:aitrainer_app/model/cache.dart';
import 'package:aitrainer_app/model/tutorial.dart';
@@ -36,7 +35,67 @@ class TutorialBloc extends Bloc<TutorialEvent, TutorialState> with Logging {
MenuBloc? menuBloc;
TutorialBloc({required this.tutorialName}) : super(TutorialInitial());
TutorialBloc({required this.tutorialName}) : super(TutorialInitial()) {
on<TutorialLoad>(_onLoad);
on<TutorialNext>(_onNext);
on<TutorialWrongAction>(_onWrongAction);
on<TutorialStart>(_onStart);
on<TutorialFinished>(_onFinished);
}
void _onLoad(TutorialLoad event, Emitter<TutorialState> emit) {
emit(TutorialLoading());
init();
if (menuBloc != null) {
menuBloc!.add(MenuCreate());
}
emit(TutorialReady());
}
void _onNext(TutorialNext event, Emitter<TutorialState> emit) {
print("Tutorial Next: ${event.text}");
if (tutorial != null) {
emit(TutorialLoading());
step = this.getNextStep(step);
if (step == -1) {
print("Tutorial $tutorialName finished!");
return;
}
print("Step: $step");
setNextStepData(step);
if (menuBloc != null) {
menuBloc!.add(MenuCreate());
}
Track().track(TrackingEvent.tutorial_step, eventValue: step.toString());
}
}
void _onWrongAction(TutorialWrongAction event, Emitter<TutorialState> emit) {
emit(TutorialLoading());
actualText = tutorial!.steps![step].errorTextTranslation!;
emit(TutorialReady());
}
void _onStart(TutorialStart event, Emitter<TutorialState> emit) {
emit(TutorialLoading());
canActivate = true;
step = 0;
emit(TutorialReady());
}
void _onFinished(TutorialFinished event, Emitter<TutorialState> emit) async {
emit(TutorialLoading());
isActive = false;
canActivate = false;
ActivityDone? activityDone = ActivityDone.tutorialBasic.searchByString(tutorialName);
if (activityDone != null) {
await Cache().setActivityDonePrefs(activityDone);
}
Track().track(TrackingEvent.tutorial_finished);
emit(TutorialReady());
}
init() {
if (Cache().tutorials != null) {
@@ -146,52 +205,4 @@ class TutorialBloc extends Bloc<TutorialEvent, TutorialState> with Logging {
}
return nextStep;
}
@override
Stream<TutorialState> mapEventToState(TutorialEvent event) async* {
if (event is TutorialLoad) {
init();
if (menuBloc != null) {
menuBloc!.add(MenuCreate());
}
} else if (event is TutorialNext) {
print("Tutorial Next: ${event.text}");
if (tutorial != null) {
yield TutorialLoading();
step = this.getNextStep(step);
if (step == -1) {
print("Tutorial $tutorialName finished!");
return;
}
print("Step: $step");
setNextStepData(step);
if (menuBloc != null) {
menuBloc!.add(MenuCreate());
}
Track().track(TrackingEvent.tutorial_step, eventValue: step.toString());
yield TutorialReady();
}
} else if (event is TutorialWrongAction) {
yield TutorialLoading();
actualText = tutorial!.steps![step].errorTextTranslation!;
yield TutorialReady();
} else if (event is TutorialStart) {
yield TutorialLoading();
canActivate = true;
step = 0;
yield TutorialReady();
} else if (event is TutorialFinished) {
yield TutorialLoading();
isActive = false;
canActivate = false;
ActivityDone? activityDone = ActivityDone.tutorialBasic.searchByString(tutorialName);
if (activityDone != null) {
await Cache().setActivityDonePrefs(activityDone);
}
Track().track(TrackingEvent.tutorial_finished);
yield TutorialReady();
}
}
}