import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:wow_english/common/request/dao/home_dao.dart'; import 'package:wow_english/common/request/exception.dart'; import 'package:wow_english/models/course_entity.dart'; import 'package:wow_english/common/request/dao/listen_dao.dart'; import 'package:wow_english/models/course_process_entity.dart'; // import 'package:wow_english/models/course_lesson_entity.dart'; import 'package:wow_english/utils/loading.dart'; import 'package:wow_english/utils/toast_util.dart'; part 'home_event.dart'; part 'home_state.dart'; class HomeBloc extends Bloc { final String? moduleId; CourseEntity? _modelData; CourseEntity? get modelData => _modelData; CourseProcessEntity? _processEntity; CourseProcessEntity? get processEntity => _processEntity; HomeBloc(this.moduleId) : super(HomeInitial()) { on(_requestData); on(_requestVideoLesson); } void _requestData(RequestDataEvent event, Emitter emitter) async { try { await loading(() async { _modelData = await HomeDao.courseLesson(moduleId: moduleId ?? ''); emitter(HomeDataLoadState()); }); } catch (e) { if (e is ApiException) { showToast(e.message.toString()); } } } void _requestVideoLesson(RequestVideoLessonEvent event, Emitter 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??'请求失败,请检查网络连接'); } } } }