mirror of
https://github.com/JGeek00/adguard-home-manager.git
synced 2025-04-21 22:39:11 +00:00
Fixed bugs update system
This commit is contained in:
parent
4a9d2abf19
commit
026cbd523e
5 changed files with 32 additions and 24 deletions
|
@ -12,7 +12,7 @@ class UpdateAvailable {
|
||||||
|
|
||||||
class UpdateAvailableData {
|
class UpdateAvailableData {
|
||||||
String currentVersion;
|
String currentVersion;
|
||||||
final String newVersion;
|
String? newVersion;
|
||||||
final String announcement;
|
final String announcement;
|
||||||
final String announcementUrl;
|
final String announcementUrl;
|
||||||
final bool canAutoupdate;
|
final bool canAutoupdate;
|
||||||
|
@ -22,7 +22,7 @@ class UpdateAvailableData {
|
||||||
|
|
||||||
UpdateAvailableData({
|
UpdateAvailableData({
|
||||||
required this.currentVersion,
|
required this.currentVersion,
|
||||||
required this.newVersion,
|
this.newVersion,
|
||||||
required this.announcement,
|
required this.announcement,
|
||||||
required this.announcementUrl,
|
required this.announcementUrl,
|
||||||
required this.canAutoupdate,
|
required this.canAutoupdate,
|
||||||
|
|
|
@ -487,22 +487,28 @@ class ServersProvider with ChangeNotifier {
|
||||||
setUpdateAvailableLoadStatus(LoadStatus.loading, true);
|
setUpdateAvailableLoadStatus(LoadStatus.loading, true);
|
||||||
final result = await checkServerUpdates(server: server);
|
final result = await checkServerUpdates(server: server);
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
UpdateAvailableData data = result['data'];
|
try {
|
||||||
final gitHubResult = await getUpdateChangelog(server: server, releaseTag: data.newVersion);
|
UpdateAvailableData data = UpdateAvailableData.fromJson(result['data']);
|
||||||
|
final gitHubResult = await getUpdateChangelog(server: server, releaseTag: data.newVersion ?? data.currentVersion);
|
||||||
if (gitHubResult['result'] == 'success') {
|
if (gitHubResult['result'] == 'success') {
|
||||||
data.changelog = gitHubResult['body'];
|
data.changelog = gitHubResult['body'];
|
||||||
}
|
}
|
||||||
data.updateAvailable = data.newVersion.contains('b')
|
data.updateAvailable = data.newVersion != null
|
||||||
|
? data.newVersion!.contains('b')
|
||||||
? compareBetaVersions(
|
? compareBetaVersions(
|
||||||
currentVersion: data.currentVersion.replaceAll('v', ''),
|
currentVersion: data.currentVersion.replaceAll('v', ''),
|
||||||
newVersion: data.newVersion.replaceAll('v', ''),
|
newVersion: data.newVersion!.replaceAll('v', ''),
|
||||||
)
|
)
|
||||||
: compareVersions(
|
: compareVersions(
|
||||||
currentVersion: data.currentVersion.replaceAll('v', ''),
|
currentVersion: data.currentVersion.replaceAll('v', ''),
|
||||||
newVersion: data.newVersion.replaceAll('v', ''),
|
newVersion: data.newVersion!.replaceAll('v', ''),
|
||||||
);
|
)
|
||||||
|
: false;
|
||||||
setUpdateAvailableData(data);
|
setUpdateAvailableData(data);
|
||||||
setUpdateAvailableLoadStatus(LoadStatus.loaded, true);
|
setUpdateAvailableLoadStatus(LoadStatus.loaded, true);
|
||||||
|
} catch (_) {
|
||||||
|
// AUTO UPDATE NOT AVAILABLE //
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
setUpdateAvailableLoadStatus(LoadStatus.error, true);
|
setUpdateAvailableLoadStatus(LoadStatus.error, true);
|
||||||
|
|
|
@ -109,7 +109,7 @@ class Settings extends StatelessWidget {
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
CustomListTile(
|
if (serversProvider.updateAvailable.data != null) CustomListTile(
|
||||||
icon: Icons.system_update_rounded,
|
icon: Icons.system_update_rounded,
|
||||||
title: AppLocalizations.of(context)!.updates,
|
title: AppLocalizations.of(context)!.updates,
|
||||||
subtitle: AppLocalizations.of(context)!.updatesDescription,
|
subtitle: AppLocalizations.of(context)!.updatesDescription,
|
||||||
|
|
|
@ -41,7 +41,7 @@ class UpdateScreen extends StatelessWidget {
|
||||||
processModal.close();
|
processModal.close();
|
||||||
|
|
||||||
if (result['result'] == 'success') {
|
if (result['result'] == 'success') {
|
||||||
serversProvider.clearUpdateAvailable(serversProvider.selectedServer!, serversProvider.updateAvailable.data!.newVersion);
|
serversProvider.clearUpdateAvailable(serversProvider.selectedServer!, serversProvider.updateAvailable.data!.newVersion!);
|
||||||
showSnacbkar(
|
showSnacbkar(
|
||||||
context: context,
|
context: context,
|
||||||
appConfigProvider: appConfigProvider,
|
appConfigProvider: appConfigProvider,
|
||||||
|
@ -140,7 +140,7 @@ class UpdateScreen extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
serversProvider.updateAvailable.data!.updateAvailable != null
|
serversProvider.updateAvailable.data!.updateAvailable != null
|
||||||
? serversProvider.updateAvailable.data!.updateAvailable == true
|
? serversProvider.updateAvailable.data!.updateAvailable == true
|
||||||
? serversProvider.updateAvailable.data!.newVersion
|
? serversProvider.updateAvailable.data!.newVersion ?? 'N/A'
|
||||||
: serversProvider.updateAvailable.data!.currentVersion
|
: serversProvider.updateAvailable.data!.currentVersion
|
||||||
: "N/A",
|
: "N/A",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
@ -156,7 +156,7 @@ class UpdateScreen extends StatelessWidget {
|
||||||
icon: const Icon(Icons.download_rounded),
|
icon: const Icon(Icons.download_rounded),
|
||||||
label: Text(AppLocalizations.of(context)!.updateNow),
|
label: Text(AppLocalizations.of(context)!.updateNow),
|
||||||
onPressed: serversProvider.updateAvailable.data!.updateAvailable != null && serversProvider.updateAvailable.data!.updateAvailable == true
|
onPressed: serversProvider.updateAvailable.data!.updateAvailable != null && serversProvider.updateAvailable.data!.updateAvailable == true
|
||||||
? serversProvider.updateAvailable.data!.canAutoupdate == true
|
? serversProvider.updateAvailable.data!.canAutoupdate != null && serversProvider.updateAvailable.data!.canAutoupdate == true
|
||||||
? () => update()
|
? () => update()
|
||||||
: () => showAutoUpdateUnavailableModal()
|
: () => showAutoUpdateUnavailableModal()
|
||||||
: null
|
: null
|
||||||
|
@ -252,7 +252,7 @@ class UpdateScreen extends StatelessWidget {
|
||||||
Text(
|
Text(
|
||||||
serversProvider.updateAvailable.data!.updateAvailable != null
|
serversProvider.updateAvailable.data!.updateAvailable != null
|
||||||
? serversProvider.updateAvailable.data!.updateAvailable == true
|
? serversProvider.updateAvailable.data!.updateAvailable == true
|
||||||
? serversProvider.updateAvailable.data!.newVersion
|
? serversProvider.updateAvailable.data!.newVersion ?? 'N/A'
|
||||||
: serversProvider.updateAvailable.data!.currentVersion
|
: serversProvider.updateAvailable.data!.currentVersion
|
||||||
: "N/A",
|
: "N/A",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
|
@ -290,7 +290,9 @@ class UpdateScreen extends StatelessWidget {
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 16),
|
padding: const EdgeInsets.symmetric(horizontal: 16),
|
||||||
child: Text(
|
child: Text(
|
||||||
"Changelog ${serversProvider.updateAvailable.data!.newVersion}",
|
"Changelog ${serversProvider.updateAvailable.data!.updateAvailable == true
|
||||||
|
? serversProvider.updateAvailable.data!.newVersion
|
||||||
|
: serversProvider.updateAvailable.data!.currentVersion}",
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 20,
|
fontSize: 20,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
|
|
|
@ -1994,7 +1994,7 @@ Future checkServerUpdates({
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
'result': 'success',
|
'result': 'success',
|
||||||
'data': UpdateAvailableData.fromJson(obj)
|
'data': obj
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
Loading…
Add table
Reference in a new issue