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