getLatestVersion method
Implementation
Future<String?> getLatestVersion({bool forceRefresh = false}) async {
final cache = _readCache();
if (cache != null && !forceRefresh) {
final lastCheckedStr = cache['last_checked'] as String?;
final cachedVersion = cache['latest_version'] as String?;
if (lastCheckedStr != null && cachedVersion != null) {
final lastChecked = DateTime.tryParse(lastCheckedStr);
if (lastChecked != null) {
final now = DateTime.now().toUtc();
if (now.difference(lastChecked) < checkInterval) {
return cachedVersion;
}
}
}
}
final fetched = await _fetchLatestVersionFromPub();
if (fetched != null) {
return fetched;
}
// If network fetch failed, fallback to cached version if present
if (cache != null) {
return cache['latest_version'] as String?;
}
return null;
}