Setup separate cache for thumbnail files

This commit is contained in:
Vishnu Mohandas 2020-08-13 05:44:13 +05:30
parent 532a9cac46
commit 35aeae2cc7
2 changed files with 16 additions and 4 deletions

View file

@ -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 {
static LRUMap<String, Uint8List> _map = LRUMap(25);

View file

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