2024-05-22 20:48:44 +00:00
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
2024-08-18 16:52:03 +00:00
|
|
|
|
|
|
|
|
bool havePackImage(String id) => _packImages[id] != null;
|
|
|
|
|
bool haveImage(String id) => _images[id] != null || havePackImage(id);
|
2024-05-22 20:48:44 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension ImagesHolderStringExt on String {
|
|
|
|
|
MemoryImage? get memoryImage => locator.imagesHolder.get(this);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
extension ImagesHolderCardExt on GameCardDto {
|
|
|
|
|
MemoryImage? get memoryImage => locator.imagesHolder.get(id.toString());
|
|
|
|
|
}
|