Преглед на файлове

Setup separate cache for thumbnail files

Vishnu Mohandas преди 4 години
родител
ревизия
35aeae2cc7
променени са 2 файла, в които са добавени 16 реда и са изтрити 4 реда
  1. 12 0
      lib/core/cache/image_cache.dart
  2. 4 4
      lib/ui/thumbnail_widget.dart

+ 12 - 0
lib/core/cache/image_cache.dart

@@ -16,6 +16,18 @@ class FileLruCache {
   }
   }
 }
 }
 
 
+class ThumbnailFileLruCache {
+  static LRUMap<String, dart.File> _map = LRUMap(500);
+
+  static dart.File get(File file) {
+    return _map.get(file.tag());
+  }
+
+  static void put(File file, dart.File imageData) {
+    _map.put(file.tag(), imageData);
+  }
+}
+
 class BytesLruCache {
 class BytesLruCache {
   static LRUMap<String, Uint8List> _map = LRUMap(25);
   static LRUMap<String, Uint8List> _map = LRUMap(25);
 
 

+ 4 - 4
lib/ui/thumbnail_widget.dart

@@ -125,9 +125,9 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
         fit: BoxFit.cover,
         fit: BoxFit.cover,
       );
       );
     } else {
     } else {
-      if (FileLruCache.get(widget.file) != null) {
+      if (ThumbnailFileLruCache.get(widget.file) != null) {
         return Image.file(
         return Image.file(
-          FileLruCache.get(widget.file),
+          ThumbnailFileLruCache.get(widget.file),
           fit: widget.fit,
           fit: widget.fit,
         );
         );
       }
       }
@@ -136,7 +136,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
           ".jpg";
           ".jpg";
       final thumbnailFile = io.File(thumbnailPath);
       final thumbnailFile = io.File(thumbnailPath);
       if (thumbnailFile.existsSync()) {
       if (thumbnailFile.existsSync()) {
-        FileLruCache.put(widget.file, thumbnailFile);
+        ThumbnailFileLruCache.put(widget.file, thumbnailFile);
         return Image.file(
         return Image.file(
           thumbnailFile,
           thumbnailFile,
           fit: widget.fit,
           fit: widget.fit,
@@ -157,7 +157,7 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
           future: decryptedFileFuture,
           future: decryptedFileFuture,
           builder: (context, snapshot) {
           builder: (context, snapshot) {
             if (snapshot.hasData) {
             if (snapshot.hasData) {
-              FileLruCache.put(widget.file, snapshot.data);
+              ThumbnailFileLruCache.put(widget.file, snapshot.data);
               return Image.file(
               return Image.file(
                 snapshot.data,
                 snapshot.data,
                 fit: widget.fit,
                 fit: widget.fit,