user_bloc.dart
1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import 'package:flutter/widgets.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:wow_english/common/core/user_util.dart';
import 'package:wow_english/common/request/dao/user_dao.dart';
import 'package:wow_english/models/user_entity.dart';
import 'package:wow_english/pages/user/modify/modify_user_information_page.dart';
import 'package:wow_english/utils/log_util.dart';
part 'user_event.dart';
part 'user_state.dart';
class UserBloc extends Bloc<UserEvent, UserState> {
final TextEditingController modifyTextController = TextEditingController();
UserBloc() : super(UserInitial()) {
on<UserLogout>(_logout);
on<UserUpdate>(_updateUser);
}
void _logout(UserLogout event, Emitter<UserState> emitter) async {
await UserDao.logout();
}
void _updateUser(UserUpdate event, Emitter<UserState> emitter) async {
Log.d('_updateUser, event: ${event.type}, emitter.isDone: ${emitter.isDone}, text=${modifyTextController.text}');
UserEntity user = UserUtil.getUser()!;
switch (event.type) {
case ModifyUserInformationType.avatar:
break;
case ModifyUserInformationType.name:
String name = modifyTextController.text;
user.name = name;
try {
await UserDao.updateUserInfo(user);
emitter(UserInfoUpdated());
} catch (e) {
print(e);
}
break;
case ModifyUserInformationType.age:
String age = modifyTextController.text;
break;
case ModifyUserInformationType.gender:
break;
}
}
}