thumbnail_cache.dart 964 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // @dart=2.9
  2. import 'dart:typed_data';
  3. import 'package:photos/core/cache/lru_map.dart';
  4. import 'package:photos/core/constants.dart';
  5. import 'package:photos/models/ente_file.dart';
  6. class ThumbnailLruCache {
  7. static final LRUMap<String, Uint8List> _map = LRUMap(1000);
  8. static Uint8List get(EnteFile enteFile, [int size]) {
  9. return _map.get(
  10. enteFile.cacheKey() +
  11. "_" +
  12. (size != null ? size.toString() : thumbnailLargeSize.toString()),
  13. );
  14. }
  15. static void put(
  16. EnteFile enteFile,
  17. Uint8List imageData, [
  18. int size,
  19. ]) {
  20. _map.put(
  21. enteFile.cacheKey() +
  22. "_" +
  23. (size != null ? size.toString() : thumbnailLargeSize.toString()),
  24. imageData,
  25. );
  26. }
  27. static void clearCache(EnteFile enteFile) {
  28. _map.remove(
  29. enteFile.cacheKey() + "_" + thumbnailLargeSize.toString(),
  30. );
  31. _map.remove(
  32. enteFile.cacheKey() + "_" + thumbnailSmallSize.toString(),
  33. );
  34. }
  35. }