mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-17 12:18:09 +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> {
|
class _AppPageState extends State<AppPage> {
|
||||||
|
AppInMemory? prevApp;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
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>();
|
||||||
var sourceProvider = SourceProvider();
|
getUpdate(String id) {
|
||||||
AppInMemory? app = appsProvider.apps[widget.appId];
|
appsProvider.getUpdate(id).catchError((e) {
|
||||||
var source = app != null ? sourceProvider.getSource(app.app.url) : null;
|
|
||||||
if (!appsProvider.areDownloadsRunning() && app != null) {
|
|
||||||
appsProvider.getUpdate(app.app.id).catchError((e) {
|
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
SnackBar(content: Text(e.toString())),
|
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(
|
return Scaffold(
|
||||||
appBar: settingsProvider.showAppWebpage ? AppBar() : null,
|
appBar: settingsProvider.showAppWebpage ? AppBar() : null,
|
||||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||||
@@ -105,13 +112,7 @@ class _AppPageState extends State<AppPage> {
|
|||||||
),
|
),
|
||||||
onRefresh: () async {
|
onRefresh: () async {
|
||||||
if (app != null) {
|
if (app != null) {
|
||||||
try {
|
getUpdate(app.app.id);
|
||||||
await appsProvider.getUpdate(app.app.id);
|
|
||||||
} catch (e) {
|
|
||||||
ScaffoldMessenger.of(context).showSnackBar(
|
|
||||||
SnackBar(content: Text(e.toString())),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
bottomSheet: Padding(
|
bottomSheet: Padding(
|
||||||
@@ -244,7 +245,10 @@ class _AppPageState extends State<AppPage> {
|
|||||||
var name = values.removeLast();
|
var name = values.removeLast();
|
||||||
changedApp.name = name;
|
changedApp.name = name;
|
||||||
changedApp.additionalData = values;
|
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),
|
sourceProvider.getSource(currentApp.url),
|
||||||
currentApp.url,
|
currentApp.url,
|
||||||
currentApp.additionalData);
|
currentApp.additionalData);
|
||||||
if (newApp.latestVersion != currentApp.latestVersion) {
|
|
||||||
newApp.installedVersion = currentApp.installedVersion;
|
newApp.installedVersion = currentApp.installedVersion;
|
||||||
if (currentApp.preferredApkIndex < newApp.apkUrls.length) {
|
if (currentApp.preferredApkIndex < newApp.apkUrls.length) {
|
||||||
newApp.preferredApkIndex = currentApp.preferredApkIndex;
|
newApp.preferredApkIndex = currentApp.preferredApkIndex;
|
||||||
}
|
}
|
||||||
await saveApps([newApp]);
|
await saveApps([newApp]);
|
||||||
return newApp;
|
return newApp.latestVersion != currentApp.latestVersion ? newApp : null;
|
||||||
} else if ((newApp.lastUpdateCheck?.microsecondsSinceEpoch ?? 0) -
|
|
||||||
(currentApp.lastUpdateCheck?.microsecondsSinceEpoch ?? 0) >
|
|
||||||
5000000) {
|
|
||||||
currentApp.lastUpdateCheck = newApp.lastUpdateCheck;
|
|
||||||
await saveApps([currentApp]);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<List<App>> checkUpdates({DateTime? ignoreAfter}) async {
|
Future<List<App>> checkUpdates({DateTime? ignoreAfter}) async {
|
||||||
|
Reference in New Issue
Block a user