getCachedMetaData method
Implementation
Future<Map<String, dynamic>> getCachedMetaData(String classId) async {
classId = _trimClassId(classId);
final cacheDir = await _ensureCacheDir();
final safeId = _safeId(classId);
final metaFile = File(p.join(cacheDir.path, '$safeId-success.json'));
if (!await metaFile.exists()) return {};
var data =
jsonDecode(await metaFile.readAsString()) as Map<String, dynamic>;
var resolved = await _resolveSuccessDataPaths(data);
if (resolved == null) {
await _repairSuccessJsonFromClassDir(safeId, metaFile);
data = jsonDecode(await metaFile.readAsString()) as Map<String, dynamic>;
resolved = await _resolveSuccessDataPaths(data);
}
if (resolved == null && await _classCoreVideosExist(safeId)) {
return await _playbackDataWithLocalMedia(safeId, data);
}
return resolved ?? {};
}