| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import 'package:bloc/bloc.dart';
- import 'package:equatable/equatable.dart';
- import 'package:flutter/foundation.dart';
- import 'package:flutter_cache_manager/flutter_cache_manager.dart';
- import 'package:network_image_cached/src/http_request.dart';
- part 'cashed_image_event.dart';
- part 'cashed_image_state.dart';
- class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
- DefaultCacheManager defaultCacheManager = DefaultCacheManager();
- CashedImageBloc() : super(CashedImageInitial()) {
- on<GetStartImageEvent>((event, emit) async {
- emit(CashedImageLoadingState());
- HttpGetImage httpGetImage = HttpGetImage(
- url: event.url,
- count: event.count,
- httpHeaders: event.httpHeaders,
- );
- if (event.cached) {
- FileInfo? fileInfo = await defaultCacheManager.getFileFromCache(
- event.url,
- );
- if (fileInfo != null) {
- emit(CashedImageGetState(bytes: await fileInfo.file.readAsBytes()));
- return;
- }
- }
- try {
- Uint8List uint8list = await httpGetImage.getDataObjectIsolate();
- if (event.cached) {
- if (event.cachkey != null) {
- defaultCacheManager.putFile(event.cachkey!, uint8list);
- } else {
- defaultCacheManager.putFile(event.url, uint8list);
- }
- }
- emit(CashedImageGetState(bytes: uint8list));
- } catch (e) {
- emit(CashedImageGetErrorState());
- }
- });
- }
- }
|