Blame view

lib/pages/home/bloc/home_bloc.dart 1.79 KB
d35a4e87   liangchengyou   feat:磨耳朵功能UI
1
  import 'package:flutter/cupertino.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
2
  import 'package:flutter/foundation.dart';
d35a4e87   liangchengyou   feat:磨耳朵功能UI
3
  import 'package:flutter_bloc/flutter_bloc.dart';
13e6d11d   liangchengyou   feat:首页课程模块接口
4
5
  import 'package:wow_english/common/request/dao/home_dao.dart';
  import 'package:wow_english/common/request/exception.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
6
  import 'package:wow_english/models/course_entity.dart';
3c1d5c64   liangchengyou   feat:练习功能完成
7
8
  import 'package:wow_english/common/request/dao/listen_dao.dart';
  import 'package:wow_english/models/course_process_entity.dart';
8988aa69   liangchengyou   feat:首页+课程列表数据获取
9
  // import 'package:wow_english/models/course_lesson_entity.dart';
13e6d11d   liangchengyou   feat:首页课程模块接口
10
  import 'package:wow_english/utils/loading.dart';
c61b3c1a   Key   feat: toast_util....
11
  import 'package:wow_english/utils/toast_util.dart';
60e47f7c   liangchengyou   feat:课程选择功能
12
13
14
15
16
  
  part 'home_event.dart';
  part 'home_state.dart';
  
  class HomeBloc extends Bloc<HomeEvent, HomeState> {
8988aa69   liangchengyou   feat:首页+课程列表数据获取
17
18
19
    final String? moduleId;
  
    CourseEntity? _modelData;
c61b3c1a   Key   feat: toast_util....
20
  
8988aa69   liangchengyou   feat:首页+课程列表数据获取
21
22
    CourseEntity? get modelData => _modelData;
  
3c1d5c64   liangchengyou   feat:练习功能完成
23
24
25
26
    CourseProcessEntity? _processEntity;
  
    CourseProcessEntity? get processEntity => _processEntity;
  
8988aa69   liangchengyou   feat:首页+课程列表数据获取
27
    HomeBloc(this.moduleId) : super(HomeInitial()) {
993c1a04   liangchengyou   feat:添加数据模型
28
      on<RequestDataEvent>(_requestData);
3c1d5c64   liangchengyou   feat:练习功能完成
29
      on<RequestVideoLessonEvent>(_requestVideoLesson);
60e47f7c   liangchengyou   feat:课程选择功能
30
    }
13e6d11d   liangchengyou   feat:首页课程模块接口
31
  
993c1a04   liangchengyou   feat:添加数据模型
32
33
34
    void _requestData(RequestDataEvent event, Emitter<HomeState> emitter) async {
      try {
        await loading(() async {
c61b3c1a   Key   feat: toast_util....
35
          _modelData = await HomeDao.courseLesson(moduleId: moduleId ?? '');
993c1a04   liangchengyou   feat:添加数据模型
36
37
38
39
          emitter(HomeDataLoadState());
        });
      } catch (e) {
        if (e is ApiException) {
c61b3c1a   Key   feat: toast_util....
40
          showToast(e.message.toString());
13e6d11d   liangchengyou   feat:首页课程模块接口
41
42
43
        }
      }
    }
3c1d5c64   liangchengyou   feat:练习功能完成
44
45
46
47
48
49
50
51
52
53
54
55
56
  
    void _requestVideoLesson(RequestVideoLessonEvent event, Emitter<HomeState> emitter) async {
      try {
        await loading(() async {
          _processEntity = await ListenDao.process(event.courseLessonId);
          emitter(RequestVideoLessonState(event.courseType));
        });
      } catch (e) {
        if (e is ApiException) {
          showToast(e.message??'请求失败,请检查网络连接');
        }
      }
    }
60e47f7c   liangchengyou   feat:课程选择功能
57
  }