Ver Fonte

csccscsc

ub3lal há 3 semanas atrás
pai
commit
d37e137c41
3 ficheiros alterados com 32 adições e 21 exclusões
  1. 15 12
      lib/src/CashedNetworkImageWidget.dart
  2. 10 8
      lib/src/bloc/cashed_image_bloc.dart
  3. 7 1
      pubspec.yaml

+ 15 - 12
lib/src/CashedNetworkImageWidget.dart

@@ -1,12 +1,14 @@
+import 'dart:io';
 import 'dart:ui' as ui;
 import 'dart:ui';
+import 'package:default_saver/default_saver.dart';
 import 'package:flutter/foundation.dart';
 import 'package:flutter/material.dart';
 
 import 'package:flutter_bloc/flutter_bloc.dart';
-import 'package:flutter_cache_manager/flutter_cache_manager.dart';
-import 'package:network_image_cached/src/http_request.dart';
 
+import 'package:network_image_cached/src/http_request.dart';
+ 
 import 'bloc/cashed_image_bloc.dart'
     show
         CashedImageBloc,
@@ -174,14 +176,16 @@ class CachedNetworkImageProvider
         httpHeaders: httpHeaders,
       );
       // 2. Декодируем байты в ui.Image
-      DefaultCacheManager defaultCacheManager = DefaultCacheManager();
+
       if (cached) {
-        FileInfo? fileInfo;
+        DefaulFileManager defaulFileManager = await DefaulFileManager.init();
+        File? fileInfo;
+
         if (cacheKey != null) {
-          fileInfo = await defaultCacheManager.getFileFromCache(cacheKey!);
+          fileInfo = await defaulFileManager.getFile(cacheKey!);
         } else {
           if (useUrl) {
-            fileInfo = await defaultCacheManager.getFileFromCache(imageUrl);
+            fileInfo = await defaulFileManager.getFile(imageUrl);
           } else {
             throw Exception('Failed to load image');
           }
@@ -189,9 +193,7 @@ class CachedNetworkImageProvider
 
         if (fileInfo != null) {
           final decodedImage = await decode(
-            await ImmutableBuffer.fromUint8List(
-              await fileInfo.file.readAsBytes(),
-            ),
+            await ImmutableBuffer.fromUint8List(await fileInfo.readAsBytes()),
           );
 
           return decodedImage;
@@ -201,12 +203,13 @@ class CachedNetworkImageProvider
       try {
         img = await httpGetImage.getDataObjectIsolate();
         if (cached) {
+          DefaulFileManager defaulFileManager = await DefaulFileManager.init();
           if (cacheKey != null) {
-            defaultCacheManager.putFile(cacheKey!, img);
+            defaulFileManager.saveFile(key:  cacheKey!, bytes:  img);
           } else {
-            defaultCacheManager.putFile(imageUrl, img);
+            defaulFileManager.saveFile(key: imageUrl,bytes:  img);
           }
-        }
+0        }
       } catch (e) {
         throw Exception('Failed to load image: $e');
       }

+ 10 - 8
lib/src/bloc/cashed_image_bloc.dart

@@ -1,8 +1,10 @@
+import 'dart:io';
+
 import 'package:bloc/bloc.dart';
+import 'package:default_saver/default_saver.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';
@@ -11,8 +13,6 @@ part 'cashed_image_state.dart';
 Map<String, Uint8List> mapcahed = <String, Uint8List>{};
 
 class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
-  DefaultCacheManager defaultCacheManager = DefaultCacheManager();
-
   CashedImageBloc() : super(CashedImageInitial()) {
     on<GetStartImageEvent>((event, emit) async {
       emit(CashedImageLoadingState());
@@ -22,7 +22,8 @@ class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
         httpHeaders: event.httpHeaders,
       );
       if (event.cached) {
-        FileInfo? fileInfo;
+        DefaulFileManager defaulFileManager = await DefaulFileManager.init();
+
         Uint8List? bytes;
 
         final String ckey;
@@ -46,9 +47,9 @@ class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
           mapcahed.clear();
         }
         if (mapcahed[ckey] == null) {
-          fileInfo = await defaultCacheManager.getFileFromCache(ckey);
+          File? fileInfo = await defaulFileManager.getFile(ckey);
           if (fileInfo != null) {
-            mapcahed[ckey] = await fileInfo.file.readAsBytes();
+            mapcahed[ckey] = await fileInfo.readAsBytes();
           }
         }
 
@@ -63,11 +64,12 @@ class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
       try {
         Uint8List uint8list = await httpGetImage.getDataObjectIsolate();
         if (event.cached) {
+          DefaulFileManager defaulFileManager = await DefaulFileManager.init();
           if (event.cachkey != null) {
-            defaultCacheManager.putFile(event.cachkey!, uint8list);
+            defaulFileManager.saveFile(key: event.cachkey!, bytes: uint8list);
             mapcahed[event.cachkey!] = uint8list;
           } else {
-            defaultCacheManager.putFile(event.url, uint8list);
+            defaulFileManager.saveFile(key: event.url, bytes: uint8list);
             mapcahed[event.url] = uint8list;
           }
         }

+ 7 - 1
pubspec.yaml

@@ -12,7 +12,11 @@ dependencies:
   flutter:
     sdk: flutter
   flutter_bloc: ^9.1.1
-  flutter_cache_manager:  ^3.4.1
+  default_saver:  
+    git:
+      url: https://git.evaz-devs.ru/ub3lal/DefaultCacheManager.git
+      ref: 314bdcee9b # branch name
+ 
   http: ^1.6.0
 
 dev_dependencies:
@@ -20,6 +24,8 @@ dev_dependencies:
     sdk: flutter
   flutter_lints: ^6.0.0
 
+
+
 # For information on the generic Dart part of this file, see the
 # following page: https://dart.dev/tools/pub/pubspec