Fixed bugs update system

This commit is contained in:
Juan Gilsanz Polo 2023-04-07 22:58:44 +02:00
parent 4a9d2abf19
commit 026cbd523e
5 changed files with 32 additions and 24 deletions

View file

@ -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,

View file

@ -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);

View file

@ -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,

View file

@ -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,

View file

@ -1994,7 +1994,7 @@ Future checkServerUpdates({
};
return {
'result': 'success',
'data': UpdateAvailableData.fromJson(obj)
'data': obj
};
}
else {