getAndSaveFeed method
Implementation
Future<List<FeedEntryModel>> getAndSaveFeed() async {
if (!cache.hasInit) {
cache.init();
}
try {
List<FeedEntryModel> recentModels = await feedProvider.parseFeed();
recentModels.sort((a, b) => a.dateTime.compareTo(b.dateTime));
List<FeedEntryModel> cachedModels = await cache.retriveAll();
if (cachedModels.isNotEmpty) {
cachedModels.sort((a, b) => a.dateTime.compareTo(b.dateTime));
if (cachedModels.first.dateTime.isAfter(recentModels.first.dateTime)) {
await cache.putAll(recentModels);
return recentModels;
} else {
return cachedModels;
}
} else {
await cache.putAll(recentModels);
return recentModels;
}
} catch (e) {
List<FeedEntryModel> cachedModels = await cache.retriveAll();
cachedModels.sort((a, b) => a.dateTime.compareTo(b.dateTime));
return cachedModels;
}
}