import 'dart:convert'; 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/lesson_entity.dart'; import 'package:wow_english/utils/loading.dart'; part 'lesson_event.dart'; part 'lesson_state.dart'; class LessonBloc extends Bloc { final int pageIndex; final PageController pageController; int _currentPageIndex = 0; int get currentPageIndex => _currentPageIndex; List _listData = []; List get listData => _listData; LessonBloc(this.pageIndex,this.pageController) : super(LessonInitial()) { _currentPageIndex = pageIndex; on(_pageIndexChange); } Future requestData() async { try { await loading(() async { List list = await HomeDao.courseModule()??[]; // if (list.isNotEmpty) { // for (dynamic jsonStr in list) { // LessonEntity? data = LessonEntity.fromJson(jsonStr); // _listData.add(data); // } // } emit(LessonDataLoadState()); }); } catch (e) { if (e is ApiException) { } } } void _pageIndexChange(PageViewChangeIndexEvent event,Emitter emitter) async { _currentPageIndex = event.index; emitter(PageIndexChangeState()); } @override Future close() { pageController.dispose(); return super.close(); } }