checkAppVersion static method
Implementation
static Future<VersionCheckResult> checkAppVersion(
AppVersionEntity appVersion,
DeviceInfoData deviceInfo,
) async {
final Version currentVersion = Version.parse(deviceInfo.appVersion);
final int? currentBuildNumber = int.tryParse(deviceInfo.appBuild);
final Version forcedVersion = Version.parse(appVersion.versionForced);
final Version optionalVersion = Version.parse(appVersion.versionOptional);
final int? forcedBuildNumber = int.tryParse(appVersion.buildForced);
final int? optionalBuildNumber = int.tryParse(appVersion.buildOptional);
final bool isForcedUpdateVersion =
appVersion.useVersion && currentVersion < forcedVersion;
final bool isForcedUpdateBuild = appVersion.useBuild &&
currentBuildNumber != null &&
forcedBuildNumber != null &&
currentBuildNumber < forcedBuildNumber;
final bool isOptionalUpdateVersion =
appVersion.useVersion && currentVersion < optionalVersion;
final bool isOptionalUpdateBuild = appVersion.useBuild &&
currentBuildNumber != null &&
optionalBuildNumber != null &&
currentBuildNumber < optionalBuildNumber;
if (isForcedUpdateVersion || isForcedUpdateBuild) {
return VersionCheckResult.forceUpdateRequired;
} else if (isOptionalUpdateVersion || isOptionalUpdateBuild) {
return VersionCheckResult.available;
} else {
return VersionCheckResult.notAvailable;
}
}