Bugfix in version detection toggles

This commit is contained in:
Imran Remtulla
2024-01-19 00:43:02 -05:00
parent f5067d636a
commit 56052bfd79

View File

@@ -28,8 +28,18 @@ class _AppPageState extends State<AppPage> {
Widget build(BuildContext context) { Widget build(BuildContext context) {
var appsProvider = context.watch<AppsProvider>(); var appsProvider = context.watch<AppsProvider>();
var settingsProvider = context.watch<SettingsProvider>(); var settingsProvider = context.watch<SettingsProvider>();
getUpdate(String id) { getUpdate(String id, {bool resetVersion = false}) {
appsProvider.checkUpdate(id).catchError((e) { appsProvider.checkUpdate(id).then((e) {
if (resetVersion) {
appsProvider.apps[id]?.app.additionalSettings['versionDetection'] =
true;
if (appsProvider.apps[id]?.app.installedVersion != null) {
appsProvider.apps[id]?.app.installedVersion =
appsProvider.apps[id]?.app.latestVersion;
}
appsProvider.saveApps([appsProvider.apps[id]!.app]);
}
}).catchError((e) {
showError(e, context); showError(e, context);
return null; return null;
}); });
@@ -296,24 +306,34 @@ class _AppPageState extends State<AppPage> {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
showMessage(tr('appsFromSourceAreTrackOnly'), context); showMessage(tr('appsFromSourceAreTrackOnly'), context);
} }
if (app.app.additionalSettings['releaseDateAsVersion'] == true) { var versionDetectionEnabled =
if (originalSettings['releaseDateAsVersion'] != true) { app.app.additionalSettings['versionDetection'] == true &&
if (app.app.releaseDate != null) { originalSettings['versionDetection'] != true;
bool isUpdated = var releaseDateVersionEnabled =
app.app.installedVersion == app.app.latestVersion; app.app.additionalSettings['releaseDateAsVersion'] == true &&
app.app.latestVersion = originalSettings['releaseDateAsVersion'] != true;
app.app.releaseDate!.microsecondsSinceEpoch.toString(); var releaseDateVersionDisabled =
if (isUpdated) { app.app.additionalSettings['releaseDateAsVersion'] != true &&
app.app.installedVersion = app.app.latestVersion; originalSettings['releaseDateAsVersion'] == true;
} if (releaseDateVersionEnabled) {
if (app.app.releaseDate != null) {
bool isUpdated = app.app.installedVersion == app.app.latestVersion;
app.app.latestVersion =
app.app.releaseDate!.microsecondsSinceEpoch.toString();
if (isUpdated) {
app.app.installedVersion = app.app.latestVersion;
} }
} }
} else if (originalSettings['releaseDateAsVersion'] == true) { } else if (releaseDateVersionDisabled) {
app.app.installedVersion = app.app.installedVersion =
app.installedInfo?.versionName ?? app.app.installedVersion; app.installedInfo?.versionName ?? app.app.installedVersion;
} }
if (versionDetectionEnabled) {
app.app.additionalSettings['versionDetection'] = true;
app.app.additionalSettings['releaseDateAsVersion'] = false;
}
appsProvider.saveApps([app.app]).then((value) { appsProvider.saveApps([app.app]).then((value) {
getUpdate(app.app.id); getUpdate(app.app.id, resetVersion: versionDetectionEnabled);
}); });
} }
} }