mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-31 21:00:15 +02:00
Tweaked update checking, fixed an issue on App page
This commit is contained in:
@@ -19,20 +19,27 @@ class AppPage extends StatefulWidget {
|
||||
}
|
||||
|
||||
class _AppPageState extends State<AppPage> {
|
||||
AppInMemory? prevApp;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var appsProvider = context.watch<AppsProvider>();
|
||||
var settingsProvider = context.watch<SettingsProvider>();
|
||||
var sourceProvider = SourceProvider();
|
||||
AppInMemory? app = appsProvider.apps[widget.appId];
|
||||
var source = app != null ? sourceProvider.getSource(app.app.url) : null;
|
||||
if (!appsProvider.areDownloadsRunning() && app != null) {
|
||||
appsProvider.getUpdate(app.app.id).catchError((e) {
|
||||
getUpdate(String id) {
|
||||
appsProvider.getUpdate(id).catchError((e) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(e.toString())),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
var sourceProvider = SourceProvider();
|
||||
AppInMemory? app = appsProvider.apps[widget.appId];
|
||||
var source = app != null ? sourceProvider.getSource(app.app.url) : null;
|
||||
if (!appsProvider.areDownloadsRunning() && prevApp == null && app != null) {
|
||||
prevApp = app;
|
||||
getUpdate(app.app.id);
|
||||
}
|
||||
return Scaffold(
|
||||
appBar: settingsProvider.showAppWebpage ? AppBar() : null,
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
@@ -105,13 +112,7 @@ class _AppPageState extends State<AppPage> {
|
||||
),
|
||||
onRefresh: () async {
|
||||
if (app != null) {
|
||||
try {
|
||||
await appsProvider.getUpdate(app.app.id);
|
||||
} catch (e) {
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(content: Text(e.toString())),
|
||||
);
|
||||
}
|
||||
getUpdate(app.app.id);
|
||||
}
|
||||
}),
|
||||
bottomSheet: Padding(
|
||||
@@ -244,7 +245,10 @@ class _AppPageState extends State<AppPage> {
|
||||
var name = values.removeLast();
|
||||
changedApp.name = name;
|
||||
changedApp.additionalData = values;
|
||||
appsProvider.saveApps([changedApp]);
|
||||
appsProvider.saveApps(
|
||||
[changedApp]).then((value) {
|
||||
getUpdate(changedApp.id);
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
@@ -307,20 +307,12 @@ class AppsProvider with ChangeNotifier {
|
||||
sourceProvider.getSource(currentApp.url),
|
||||
currentApp.url,
|
||||
currentApp.additionalData);
|
||||
if (newApp.latestVersion != currentApp.latestVersion) {
|
||||
newApp.installedVersion = currentApp.installedVersion;
|
||||
if (currentApp.preferredApkIndex < newApp.apkUrls.length) {
|
||||
newApp.preferredApkIndex = currentApp.preferredApkIndex;
|
||||
}
|
||||
await saveApps([newApp]);
|
||||
return newApp;
|
||||
} else if ((newApp.lastUpdateCheck?.microsecondsSinceEpoch ?? 0) -
|
||||
(currentApp.lastUpdateCheck?.microsecondsSinceEpoch ?? 0) >
|
||||
5000000) {
|
||||
currentApp.lastUpdateCheck = newApp.lastUpdateCheck;
|
||||
await saveApps([currentApp]);
|
||||
newApp.installedVersion = currentApp.installedVersion;
|
||||
if (currentApp.preferredApkIndex < newApp.apkUrls.length) {
|
||||
newApp.preferredApkIndex = currentApp.preferredApkIndex;
|
||||
}
|
||||
return null;
|
||||
await saveApps([newApp]);
|
||||
return newApp.latestVersion != currentApp.latestVersion ? newApp : null;
|
||||
}
|
||||
|
||||
Future<List<App>> checkUpdates({DateTime? ignoreAfter}) async {
|
||||
|
Reference in New Issue
Block a user