latestVersion property Null safety
Returns the latest version of the app.
Implementation
Version get latestVersion {
final strippedToVersion = <Version, Version>{};
this?.forEach((element) {
final name = element.name ?? Version.none.toString();
final buildList = (element.versionCodes ?? []).map(int.parse).toList()
..sort();
var latestBuildNumber = 0;
try {
latestBuildNumber = buildList.last;
} catch (_) {}
if (name.contains('(')) {
final versionStr = name.substring(
name.indexOf('(') + 1,
name.indexOf(')'),
);
if (versionStr.isNotEmpty) {
final version = Version.parse(versionStr).copy(
build: latestBuildNumber.toString(),
);
strippedToVersion.addAll({
version.stripPreRelease(): version,
});
}
} else {
final version = Version.parse(name).copy(
build: latestBuildNumber.toString(),
);
strippedToVersion.addAll({
version.stripPreRelease(): version,
});
}
});
final primary = Version.primary(strippedToVersion.keys.toList());
return strippedToVersion[primary] ?? Version.none;
}