mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-03 23:03:29 +01: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]);
 | 
			
		||||
    }
 | 
			
		||||
    return null;
 | 
			
		||||
    return newApp.latestVersion != currentApp.latestVersion ? newApp : null;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Future<List<App>> checkUpdates({DateTime? ignoreAfter}) async {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user