Fixed GitHub update notifier

This commit is contained in:
Juan Gilsanz Polo 2023-10-27 14:39:07 +02:00
parent 211a0b0298
commit 80b3c004d6
4 changed files with 92 additions and 18 deletions

View file

@ -12,21 +12,27 @@ Future<GitHubRelease?> checkAppUpdates({
required Source installationSource,
required bool isBeta
}) async {
final result = await checkAppUpdatesGitHub();
var result = isBeta
? await getReleasesGitHub()
: await getLatestReleaseGitHub();
if (result['result'] == 'success') {
late GitHubRelease gitHubRelease;
if (isBeta) {
gitHubRelease = (result['body'] as List<GitHubRelease>).firstWhere((r) => r.prerelease == true);
}
else {
gitHubRelease = result['body'] as GitHubRelease;
}
final update = gitHubUpdateExists(
currentBuildNumber: currentBuildNumber,
gitHubReleases: result['body'],
gitHubRelease: gitHubRelease,
isBeta: isBeta
);
if (update == true) {
final release = isBeta == true
? result['body'].firstWhere((release) => release.prerelease == true)
: result['body'].firstWhere((release) => release.prerelease == false);
setUpdateAvailable(release);
setUpdateAvailable(gitHubRelease);
if (Platform.isAndroid) {
if (
@ -34,7 +40,7 @@ Future<GitHubRelease?> checkAppUpdates({
installationSource == Source.IS_INSTALLED_FROM_PLAY_PACKAGE_INSTALLER ||
installationSource == Source.UNKNOWN
) {
return release;
return gitHubRelease;
}
else {
return null;
@ -44,7 +50,7 @@ Future<GitHubRelease?> checkAppUpdates({
return null;
}
else {
return release;
return gitHubRelease;
}
}
else {

View file

@ -151,15 +151,11 @@ bool serverVersionIsAhead({
bool gitHubUpdateExists({
required String currentBuildNumber,
required List<GitHubRelease> gitHubReleases,
required GitHubRelease gitHubRelease,
required bool isBeta
}) {
final release = isBeta == true
? gitHubReleases.firstWhere((release) => release.prerelease == true)
: gitHubReleases.firstWhere((release) => release.prerelease == false);
final versionNumberRegex = RegExp(r'\(\d+\)');
final releaseNumberExtractedMatches = versionNumberRegex.allMatches(release.tagName);
final releaseNumberExtractedMatches = versionNumberRegex.allMatches(gitHubRelease.tagName);
if (releaseNumberExtractedMatches.isNotEmpty) {
final releaseNumberExtracted = releaseNumberExtractedMatches.first.group(0);
@ -181,12 +177,12 @@ bool gitHubUpdateExists({
}
}
else {
Sentry.captureMessage("Invalid release number. Tagname: ${release.tagName}");
Sentry.captureMessage("Invalid release number. Tagname: ${gitHubRelease.tagName}");
return false;
}
}
else {
Sentry.captureMessage("No matches. ${release.tagName}");
Sentry.captureMessage("No matches. ${gitHubRelease.tagName}");
return false;
}
}