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

View file

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

View file

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

View file

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

View file

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