mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-06-28 20:09:51 +00:00
Fixed GitHub update notifier
This commit is contained in:
parent
211a0b0298
commit
80b3c004d6
4 changed files with 92 additions and 18 deletions
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue