loadMedia function
Return CachedMediaInfo? after either finding in cache or downloading then set in cache
Implementation
Future<CachedMediaInfo?> loadMedia(String mediaUrl, {required GetStorage getStorage}) async {
CachedMediaInfo? cachedMediaInfo = await findFirstCachedMediaInfoOrNull(getStorage, mediaUrl);
if (cachedMediaInfo == null) {
await downloadAndSetInCache(mediaUrl, getStorage: getStorage);
} else {
if (await doesFileExist(cachedMediaInfo.cachedMediaUrl)) {
return cachedMediaInfo;
} else {
removeCachedMediaInfo(getStorage, cachedMediaInfo.id);
await downloadAndSetInCache(mediaUrl, getStorage: getStorage);
}
}
cachedMediaInfo = await findFirstCachedMediaInfoOrNull(getStorage, mediaUrl);
return cachedMediaInfo;
}