Skip to content

Commit 3e6ea37

Browse files
committed
Check if file in mem cache exists
Could fix Baseflow#135
1 parent dac95d4 commit 3e6ea37

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

flutter_cache_manager/lib/src/cache_store.dart

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,23 +65,25 @@ class CacheStore {
6565
}
6666

6767
Future<CacheObject> retrieveCacheData(String url,
68-
{bool ignoreMemCache = false}) {
68+
{bool ignoreMemCache = false}) async{
6969
if (!ignoreMemCache && _memCache.containsKey(url)) {
70-
return Future.value(_memCache[url]);
70+
if(await _fileExists(_memCache[url])){
71+
return _memCache[url];
72+
}
7173
}
7274
if (!_futureCache.containsKey(url)) {
7375
final completer = Completer<CacheObject>();
74-
_getCacheDataFromDatabase(url).then((cacheObject) async {
76+
unawaited(_getCacheDataFromDatabase(url).then((cacheObject) async {
7577
if (cacheObject != null && !await _fileExists(cacheObject)) {
7678
final provider = await _cacheInfoRepository;
77-
unawaited(provider.delete(cacheObject.id));
79+
await provider.delete(cacheObject.id);
7880
cacheObject = null;
7981
}
80-
completer.complete(cacheObject);
81-
82+
8283
_memCache[url] = cacheObject;
84+
completer.complete(cacheObject);
8385
unawaited(_futureCache.remove(url));
84-
});
86+
}));
8587
_futureCache[url] = completer.future;
8688
}
8789
return _futureCache[url];

0 commit comments

Comments
 (0)