import 'dart:async'; import 'dart:ui'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/widgets.dart'; <%_ if (enableTranslation) { _%> import 'package:<%= baseName %>/generated/l10n.dart'; <%_ } _%> import 'package:<%= baseName %>/shared/models/user.dart'; import 'package:<%= baseName %>/shared/repository/account_repository.dart'; part 'main_events.dart'; part 'main_state.dart'; class MainBloc extends Bloc { final AccountRepository _accountRepository; MainBloc({@required AccountRepository accountRepository}) : assert(accountRepository != null), _accountRepository = accountRepository, super(const MainState()); @override void onTransition(Transition transition) { super.onTransition(transition); } @override Stream mapEventToState(MainEvent event) async* { if (event is Init) { yield* onInit(event); } } Stream onInit(Init event) async* { User currentUser = await _accountRepository.getIdentity(); <%_ if (enableTranslation) { _%> if(currentUser.langKey.compareTo(S.current.locale) != 0) { S.load(Locale(currentUser.langKey)); } <%_ } _%> yield state.copyWith( currentUser: currentUser, ); } }