WT 1.1.26+3 bloc migration
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user