Blame view

lib/pages/unit/bloc.dart 2.49 KB
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
1
  import 'package:bloc/bloc.dart';
2187c85f   吴启风   feat:课程结构调整
2
  import 'package:wow_english/pages/unit/widget/home_tab_header_widget.dart';
025d8543   biao   首页gametime播放修改
3
  import 'package:wow_english/utils/audio_player_util.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
4
  
2187c85f   吴启风   feat:课程结构调整
5
  import '../../common/request/dao/lesson_dao.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
6
  import '../../common/request/exception.dart';
2187c85f   吴启风   feat:课程结构调整
7
  import '../../models/course_module_entity.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
8
  import '../../models/course_unit_entity.dart';
2187c85f   吴启风   feat:课程结构调整
9
  import '../../route/route.dart';
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
10
11
12
13
14
15
  import '../../utils/loading.dart';
  import '../../utils/toast_util.dart';
  import 'event.dart';
  import 'state.dart';
  
  class UnitBloc extends Bloc<UnitEvent, UnitState> {
2187c85f   吴启风   feat:课程结构调整
16
    CourseModuleEntity? _moduleEntity;
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
17
  
2187c85f   吴启风   feat:课程结构调整
18
    CourseModuleEntity? get moduleEntity => _moduleEntity;
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
19
  
2187c85f   吴启风   feat:课程结构调整
20
    CourseUnitEntity? _unitData;
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
21
  
2187c85f   吴启风   feat:课程结构调整
22
23
    CourseUnitEntity? get unitData => _unitData;
  
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
24
    bool exchangeResult = false;
2187c85f   吴启风   feat:课程结构调整
25
26
  
    UnitBloc(CourseModuleEntity? courseEntity) : super(UnitState().init()) {
009cf00d   吴启风   feat:环节&单元解锁逻辑
27
      on<RequestUnitDataEvent>(_requestUnitDatas);
b1869cf8   biao   背景音乐添加
28
29
30
      on<UnitInitEvent>((event, emit) {
        AudioPlayerUtil.getInstance().playAudio(AudioPlayerUtilType.inMyTummy);
      });
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
31
32
    }
  
e6a08b82   biao   修复兑换之后回到首页不刷新问题;修...
33
34
    void _requestUnitDatas(
        RequestUnitDataEvent event, Emitter<UnitState> emitter) async {
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
35
36
      try {
        await loading(() async {
2187c85f   吴启风   feat:课程结构调整
37
          _unitData = await LessonDao.courseUnit(event.moduleId);
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
38
39
40
41
42
43
44
45
          emitter(UnitDataLoadState());
        });
      } catch (e) {
        if (e is ApiException) {
          showToast(e.message ?? '请求失败,请检查网络连接');
        }
      }
    }
2187c85f   吴启风   feat:课程结构调整
46
47
48
49
50
  
    String? getCourseModuleCode() {
      return _moduleEntity?.code ?? _unitData?.courseModuleCode;
    }
  
2d1ead53   吴启风   feat:背景音播放优化
51
52
    Future<void> headerActionEvent(HeaderActionType type) async {
      await AudioPlayerUtil.getInstance().pause();
2187c85f   吴启风   feat:课程结构调整
53
      if (type == HeaderActionType.video) {
2d1ead53   吴启风   feat:背景音播放优化
54
        //视频跟读暂时隐藏了
2187c85f   吴启风   feat:课程结构调整
55
56
        pushNamed(AppRouteName.reAfter);
      } else if (type == HeaderActionType.phase) {
b1869cf8   biao   背景音乐添加
57
58
59
60
61
        pushNamed(AppRouteName.courseModule).then((value) => {
              AudioPlayerUtil.getInstance()
                  .playAudio(AudioPlayerUtilType.inMyTummy)
            });
        ;
2187c85f   吴启风   feat:课程结构调整
62
      } else if (type == HeaderActionType.listen) {
b1869cf8   biao   背景音乐添加
63
64
65
66
        pushNamed(AppRouteName.listen).then((value) => {
              AudioPlayerUtil.getInstance()
                  .playAudio(AudioPlayerUtilType.inMyTummy)
            });
2187c85f   吴启风   feat:课程结构调整
67
      } else if (type == HeaderActionType.shop) {
b1869cf8   biao   背景音乐添加
68
69
70
71
72
        pushNamed(AppRouteName.shop).then((value) => {
              AudioPlayerUtil.getInstance()
                  .playAudio(AudioPlayerUtilType.inMyTummy),
              exchangeResult = value['exchange']
            });
2187c85f   吴启风   feat:课程结构调整
73
74
75
76
      } else if (type == HeaderActionType.user) {
        pushNamed(AppRouteName.user);
      }
    }
2a3621f8   吴启风   feat:课程层级调整(增加unit层)
77
  }