|
@@ -24,26 +24,32 @@ class CashedImageBloc extends Bloc<CashedImageEvent, CashedImageState> {
|
|
|
if (event.cached) {
|
|
if (event.cached) {
|
|
|
FileInfo? fileInfo;
|
|
FileInfo? fileInfo;
|
|
|
Uint8List? bytes;
|
|
Uint8List? bytes;
|
|
|
|
|
+
|
|
|
|
|
+ final String ckey;
|
|
|
|
|
+
|
|
|
if (event.cachkey != null) {
|
|
if (event.cachkey != null) {
|
|
|
- if (mapcahed[event.cachkey!] == null) {
|
|
|
|
|
- fileInfo = await defaultCacheManager.getFileFromCache(
|
|
|
|
|
- event.cachkey!,
|
|
|
|
|
- );
|
|
|
|
|
- if (fileInfo != null) {
|
|
|
|
|
- mapcahed[event.cachkey!] = await fileInfo.file.readAsBytes();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- bytes = mapcahed[event.cachkey!];
|
|
|
|
|
|
|
+ ckey = event.cachkey!;
|
|
|
} else {
|
|
} else {
|
|
|
- if (mapcahed[event.url] == null) {
|
|
|
|
|
- fileInfo = await defaultCacheManager.getFileFromCache(event.url);
|
|
|
|
|
- if (fileInfo != null) {
|
|
|
|
|
- mapcahed[event.url] = await fileInfo.file.readAsBytes();
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ ckey = event.url;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ int size = 0;
|
|
|
|
|
+ for (var v in mapcahed.values) {
|
|
|
|
|
+ size += v.length;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (size > 20000) {
|
|
|
|
|
+ mapcahed.clear();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (mapcahed[ckey] == null) {
|
|
|
|
|
+ fileInfo = await defaultCacheManager.getFileFromCache(ckey);
|
|
|
|
|
+ if (fileInfo != null) {
|
|
|
|
|
+ mapcahed[ckey] = await fileInfo.file.readAsBytes();
|
|
|
}
|
|
}
|
|
|
- bytes = mapcahed[event.url];
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ bytes = mapcahed[ckey];
|
|
|
|
|
+
|
|
|
if (bytes != null) {
|
|
if (bytes != null) {
|
|
|
emit(CashedImageGetState(bytes: bytes));
|
|
emit(CashedImageGetState(bytes: bytes));
|
|
|
return;
|
|
return;
|