diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index c4dd8ee..fbaa36f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -11,7 +11,7 @@ { ///初始化状态为正在加载 - HabitsBloc() : super(HabitsLoadInProgress()); - - @override - Stream mapEventToState(HabitsEvent event) async* { - if (event is HabitsLoad) { - yield* _mapHabitsLoadToState(); - } else if (event is HabitsAdd) { - yield* _mapHabitsAddToState(event); - } else if (event is HabitUpdate) { - yield* _mapHabitUpdateToState(event); - } + HabitsBloc() : super(HabitsLoadInProgress()) { + on(_mapHabitsLoadToState); + on(_mapHabitsAddToState); + on(_mapHabitUpdateToState); } - Stream _mapHabitsLoadToState() async* { + void _mapHabitsLoadToState( + HabitsLoad event, Emitter emit) async { try { if (!SessionUtils.sharedInstance().isLogin()) { - yield HabitLoadSuccess([]); + emit(HabitLoadSuccess([])); return; } List habits = await DatabaseProvider.db.getAllHabits(); print(habits); - yield HabitLoadSuccess(habits); + emit(HabitLoadSuccess(habits)); } catch (e) { print(e); - yield HabitsLodeFailure(); + emit(HabitsLodeFailure()); } } - Stream _mapHabitsAddToState(HabitsAdd habitsAdd) async* { + void _mapHabitsAddToState(HabitsAdd event, Emitter emit) { if (state is HabitLoadSuccess) { final List habits = List.from((state as HabitLoadSuccess).habits) - ..add(habitsAdd.habit); - yield HabitLoadSuccess(habits); - DatabaseProvider.db.insert(habitsAdd.habit); + ..add(event.habit); + emit(HabitLoadSuccess(habits)); + DatabaseProvider.db.insert(event.habit); } } - Stream _mapHabitUpdateToState(HabitUpdate habitUpdate) async* { + void _mapHabitUpdateToState(HabitUpdate event, Emitter emit) { if (state is HabitLoadSuccess) { final List habits = (state as HabitLoadSuccess) .habits - .map((habit) => - habit.id == habitUpdate.habit.id ? habitUpdate.habit : habit) + .map((habit) => habit.id == event.habit.id ? event.habit : habit) .toList(); - yield HabitLoadSuccess(habits); - DatabaseProvider.db.update(habitUpdate.habit); + emit(HabitLoadSuccess(habits)); + DatabaseProvider.db.update(event.habit); } } }