mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Bugfix - update checking on app load was broken
This commit is contained in:
		@@ -17,10 +17,10 @@ const String currentReleaseTag =
 | 
				
			|||||||
void bgTaskCallback() {
 | 
					void bgTaskCallback() {
 | 
				
			||||||
  // Background update checking process
 | 
					  // Background update checking process
 | 
				
			||||||
  Workmanager().executeTask((task, taskName) async {
 | 
					  Workmanager().executeTask((task, taskName) async {
 | 
				
			||||||
    var appsProvider = AppsProvider(bg: true);
 | 
					 | 
				
			||||||
    var notificationsProvider = NotificationsProvider();
 | 
					    var notificationsProvider = NotificationsProvider();
 | 
				
			||||||
    await notificationsProvider.notify(checkingUpdatesNotification);
 | 
					    await notificationsProvider.notify(checkingUpdatesNotification);
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					      var appsProvider = AppsProvider();
 | 
				
			||||||
      await notificationsProvider
 | 
					      await notificationsProvider
 | 
				
			||||||
          .cancel(ErrorCheckingUpdatesNotification('').id);
 | 
					          .cancel(ErrorCheckingUpdatesNotification('').id);
 | 
				
			||||||
      await appsProvider.loadApps();
 | 
					      await appsProvider.loadApps();
 | 
				
			||||||
@@ -52,7 +52,11 @@ void main() async {
 | 
				
			|||||||
  );
 | 
					  );
 | 
				
			||||||
  runApp(MultiProvider(
 | 
					  runApp(MultiProvider(
 | 
				
			||||||
    providers: [
 | 
					    providers: [
 | 
				
			||||||
      ChangeNotifierProvider(create: (context) => AppsProvider()),
 | 
					      ChangeNotifierProvider(
 | 
				
			||||||
 | 
					          create: (context) => AppsProvider(
 | 
				
			||||||
 | 
					              shouldLoadApps: true,
 | 
				
			||||||
 | 
					              shouldCheckUpdatesAfterLoad: true,
 | 
				
			||||||
 | 
					              shouldDeleteAPKs: true)),
 | 
				
			||||||
      ChangeNotifierProvider(create: (context) => SettingsProvider()),
 | 
					      ChangeNotifierProvider(create: (context) => SettingsProvider()),
 | 
				
			||||||
      Provider(create: (context) => NotificationsProvider())
 | 
					      Provider(create: (context) => NotificationsProvider())
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
@@ -71,12 +75,7 @@ class MyApp extends StatelessWidget {
 | 
				
			|||||||
    AppsProvider appsProvider = context.read<AppsProvider>();
 | 
					    AppsProvider appsProvider = context.read<AppsProvider>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (settingsProvider.prefs == null) {
 | 
					    if (settingsProvider.prefs == null) {
 | 
				
			||||||
      settingsProvider.initializeSettings().then((value) {
 | 
					      settingsProvider.initializeSettings();
 | 
				
			||||||
        // Delete past downloads and check for updates every time the app is launched
 | 
					 | 
				
			||||||
        // Only runs once as the settings are only initialized once (so not on every build)
 | 
					 | 
				
			||||||
        appsProvider.deleteSavedAPKs();
 | 
					 | 
				
			||||||
        appsProvider.checkUpdates();
 | 
					 | 
				
			||||||
      });
 | 
					 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      // Register the background update task according to the user's setting
 | 
					      // Register the background update task according to the user's setting
 | 
				
			||||||
      Workmanager().registerPeriodicTask('bg-update-check', 'bg-update-check',
 | 
					      Workmanager().registerPeriodicTask('bg-update-check', 'bg-update-check',
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,14 +39,26 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
  late Stream<FGBGType> foregroundStream;
 | 
					  late Stream<FGBGType> foregroundStream;
 | 
				
			||||||
  late StreamSubscription<FGBGType> foregroundSubscription;
 | 
					  late StreamSubscription<FGBGType> foregroundSubscription;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  AppsProvider({bool bg = false}) {
 | 
					  AppsProvider(
 | 
				
			||||||
 | 
					      {bool shouldLoadApps = false,
 | 
				
			||||||
 | 
					      bool shouldCheckUpdatesAfterLoad = false,
 | 
				
			||||||
 | 
					      bool shouldDeleteAPKs = false}) {
 | 
				
			||||||
    // Subscribe to changes in the app foreground status
 | 
					    // Subscribe to changes in the app foreground status
 | 
				
			||||||
    foregroundStream = FGBGEvents.stream.asBroadcastStream();
 | 
					    foregroundStream = FGBGEvents.stream.asBroadcastStream();
 | 
				
			||||||
    foregroundSubscription = foregroundStream.listen((event) async {
 | 
					    foregroundSubscription = foregroundStream.listen((event) async {
 | 
				
			||||||
      isForeground = event == FGBGType.foreground;
 | 
					      isForeground = event == FGBGType.foreground;
 | 
				
			||||||
      if (isForeground) await loadApps();
 | 
					      if (isForeground) await loadApps();
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
    loadApps();
 | 
					    if (shouldDeleteAPKs) {
 | 
				
			||||||
 | 
					      deleteSavedAPKs();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (shouldLoadApps) {
 | 
				
			||||||
 | 
					      loadApps().then((_) {
 | 
				
			||||||
 | 
					        if (shouldCheckUpdatesAfterLoad) {
 | 
				
			||||||
 | 
					          checkUpdates();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<ApkFile> downloadApp(String apkUrl, String appId) async {
 | 
					  Future<ApkFile> downloadApp(String apkUrl, String appId) async {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user