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);
}
}
}