bestItem method

AppcastItem? bestItem()

Returns the latest item in the Appcast based on OS, OS version, and app version.

Implementation

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

  AppcastItem? bestItem;
  items!.forEach((AppcastItem item) {
    if (item.hostSupportsItem(osVersion: osVersionString)) {
      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: bestItem invalid version: $e');
        }
      }
    }
  });
  return bestItem;
}