isUpdateAvailable static method

bool isUpdateAvailable({
  1. required String candidateVersion,
  2. required int candidateBuildNumber,
  3. required String currentVersion,
  4. required String currentBuildNumber,
})

Returns whether the candidate version/build is strictly newer.

Implementation

static bool isUpdateAvailable({
  required String candidateVersion,
  required int candidateBuildNumber,
  required String currentVersion,
  required String currentBuildNumber,
}) {
  if (candidateBuildNumber < 0) {
    throw FormatException(
      'Invalid candidate build number: $candidateBuildNumber',
    );
  }
  final parsedCurrentBuild = int.tryParse(currentBuildNumber);
  if (parsedCurrentBuild == null || parsedCurrentBuild < 0) {
    throw FormatException(
      'Invalid current build number: $currentBuildNumber',
    );
  }

  final versionComparison = compare(candidateVersion, currentVersion);
  if (versionComparison != 0) return versionComparison > 0;
  return candidateBuildNumber > parsedCurrentBuild;
}