ente/lib/core/cache/thumbnail_cache.dart

40 lines
954 B
Dart
Raw Normal View History

import 'dart:typed_data';
2020-05-04 20:44:34 +00:00
import 'package:photos/core/cache/lru_map.dart';
import 'package:photos/core/constants.dart';
import 'package:photos/models/ente_file.dart';
class ThumbnailLruCache {
2021-07-22 18:41:58 +00:00
static final LRUMap<String, Uint8List> _map = LRUMap(1000);
2022-07-19 11:15:26 +00:00
static Uint8List get(EnteFile enteFile, [int size]) {
2022-06-11 08:23:52 +00:00
return _map.get(
2022-07-19 11:15:26 +00:00
enteFile.cacheKey() +
2022-06-11 08:23:52 +00:00
"_" +
(size != null ? size.toString() : kThumbnailLargeSize.toString()),
);
}
static void put(
2022-07-19 11:15:26 +00:00
EnteFile enteFile,
Uint8List imageData, [
int size,
]) {
_map.put(
2022-07-19 11:15:26 +00:00
enteFile.cacheKey() +
2022-06-11 08:23:52 +00:00
"_" +
(size != null ? size.toString() : kThumbnailLargeSize.toString()),
imageData,
);
}
2022-07-19 11:15:26 +00:00
static void clearCache(EnteFile enteFile) {
_map.remove(
2022-07-19 11:15:26 +00:00
enteFile.cacheKey() + "_" + kThumbnailLargeSize.toString(),
2022-06-11 08:23:52 +00:00
);
_map.remove(
2022-07-19 11:15:26 +00:00
enteFile.cacheKey() + "_" + kThumbnailSmallSize.toString(),
2022-06-11 08:23:52 +00:00
);
}
}