bestCriticalItem method

AppcastItem? bestCriticalItem()

Returns the latest critical item in the Appcast.

Implementation

AppcastItem? bestCriticalItem() {
  if (items == null) {
    return null;
  }

  AppcastItem? bestItem;
  items!.forEach((AppcastItem item) {
    if (item.hostSupportsItem(osVersion: osVersionString) &&
        item.isCriticalUpdate) {
      if (bestItem == null) {
        bestItem = item;
      } else {
        try {
          final itemVersion = Version.parse(item.versionString!);
          final bestItemVersion = Version.parse(bestItem!.versionString!);
          if (itemVersion > bestItemVersion) {
            bestItem = item;
          }
        } on Exception catch (e) {
          print('upgrader: criticalUpdateItem invalid version: $e');
        }
      }
    }
  });
  return bestItem;
}