voice_pic_bloc.dart 1.02 KB
import 'package:flutter/cupertino.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

part 'voice_pic_event.dart';
part 'voice_pic_state.dart';

class VoicePicBloc extends Bloc<VoicePicEvent, VoicePicState> {
  final PageController pageController;

  final int modelCount;

  int _currentPage = 0;

  int _selectItem = 0;

  int get currentPage => _currentPage + 1;

  int get selectItem => _selectItem;
  VoicePicBloc(this.pageController, this.modelCount) : super(VoicePicInitial()) {
    on<CurrentPageIndexChangeEvent>(_pageControllerChange);
    on<SelectItemEvent>(_selectItemLoad);
  }

  @override
  Future<void> close() {
    pageController.dispose();
    return super.close();
  }

  void _pageControllerChange(CurrentPageIndexChangeEvent event,Emitter<VoicePicState> emitter) async {
    _currentPage = event.pageIndex;
    emitter(CurrentPageIndexState());
  }

  void _selectItemLoad(SelectItemEvent event,Emitter<VoicePicState> emitter) async {
    _selectItem = event.selectIndex;
    emitter(SelectItemChangeState());
  }
}