mnemo_cards/lib/features/packs/images_holder.dart

49 lines
1.1 KiB
Dart
Raw Normal View History

2024-05-22 20:48:44 +00:00
import 'dart:developer';
import 'package:flutter/cupertino.dart';
import 'package:mnemo_cards/di/locator.dart';
import 'package:mnemo_cards_common/mnemo_cards_common.dart';
class ImagesHolder {
Map<String, MemoryImage> _images = {};
2024-05-28 21:25:51 +00:00
Map<String, MemoryImage> _packImages = {};
2024-06-08 23:34:38 +00:00
String? packId;
2024-05-22 20:48:44 +00:00
DateTime? unlockTime;
ImagesHolder();
2024-06-08 23:34:38 +00:00
void setPackImages(Map<String, MemoryImage> images, String packId) {
2024-05-28 21:25:51 +00:00
_packImages = Map.from(images);
2024-06-08 23:34:38 +00:00
this.packId = packId;
2024-05-22 20:48:44 +00:00
}
2024-05-28 21:25:51 +00:00
void setImage(String key, MemoryImage image) {
_images[key] = image;
}
void clear() {
_images.clear();
_packImages.clear();
2024-06-08 23:34:38 +00:00
packId = null;
2024-05-28 21:25:51 +00:00
}
2024-05-22 20:48:44 +00:00
MemoryImage? get(String id) {
2024-05-28 21:25:51 +00:00
final memoryImage = getPackImage(id) ?? _images[id];
return memoryImage;
}
2024-05-22 20:48:44 +00:00
2024-05-28 21:25:51 +00:00
MemoryImage? getPackImage(String id) {
final memoryImage = _packImages[id];
2024-05-22 20:48:44 +00:00
return memoryImage;
}
}
extension ImagesHolderStringExt on String {
MemoryImage? get memoryImage => locator.imagesHolder.get(this);
}
extension ImagesHolderCardExt on GameCardDto {
MemoryImage? get memoryImage => locator.imagesHolder.get(id.toString());
}