import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:go_router/go_router.dart'; import 'package:hadi_hoda_flutter/core/constants/my_constants.dart'; import 'package:hadi_hoda_flutter/core/params/no_params.dart'; import 'package:hadi_hoda_flutter/core/routers/my_routes.dart'; import 'package:hadi_hoda_flutter/core/status/base_status.dart'; import 'package:hadi_hoda_flutter/core/utils/context_provider.dart'; import 'package:hadi_hoda_flutter/core/utils/local_storage.dart'; import 'package:hadi_hoda_flutter/features/download/domain/entities/download_entity.dart'; import 'package:hadi_hoda_flutter/features/intro/domain/usecases/get_images_usecase.dart'; import 'package:hadi_hoda_flutter/features/intro/domain/usecases/loading_stream_usecase.dart'; import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_event.dart'; import 'package:hadi_hoda_flutter/features/intro/presentation/bloc/intro_state.dart'; class IntroBloc extends Bloc { /// ------------constructor------------ IntroBloc( this._getImagesUseCase, this._loadingStreamUseCase, ) : super(const IntroState()) { on(_getImagesEvent); loadingStream = _loadingStreamUseCase(); } /// ------------UseCases------------ final GetImagesUseCase _getImagesUseCase; final LoadingStreamUseCase _loadingStreamUseCase; /// ------------Variables------------ Stream loadingStream = Stream.empty(); /// ------------Controllers------------ /// ------------Functions------------ /// ------------Api Calls------------ FutureOr _getImagesEvent( GetImagesEvent event, Emitter emit, ) async { emit(state.copyWith(getFilesStatus: BaseInit())); await _getImagesUseCase(NoParams()).then((value) { value.fold( (data) async { if(LocalStorage.readData(key: MyConstants.firstLanguagePage) != 'true'){ ContextProvider.context.goNamed(Routes.languagePage); } else { await Future.delayed(Duration(milliseconds: 500), () { if (ContextProvider.context.mounted) { ContextProvider.context.goNamed(Routes.homePage); } }); } }, (error) async { emit(state.copyWith(getFilesStatus: BaseError(error.errorMessage))); }, ); }); } }