This commit is contained in:
Imran Remtulla
2023-08-22 19:43:23 -04:00
parent 788c4c7917
commit 5307fd0901
2 changed files with 17 additions and 13 deletions

View File

@@ -113,7 +113,7 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
LogsProvider logs = LogsProvider(); LogsProvider logs = LogsProvider();
NotificationsProvider notificationsProvider = NotificationsProvider(); NotificationsProvider notificationsProvider = NotificationsProvider();
AppsProvider appsProvider = AppsProvider(); AppsProvider appsProvider = AppsProvider(isBg: true);
await appsProvider.loadApps(); await appsProvider.loadApps();
var settingsProvider = SettingsProvider(); var settingsProvider = SettingsProvider();
await settingsProvider.initializeSettings(); await settingsProvider.initializeSettings();

View File

@@ -114,7 +114,7 @@ class AppsProvider with ChangeNotifier {
Iterable<AppInMemory> getAppValues() => apps.values.map((a) => a.deepCopy()); Iterable<AppInMemory> getAppValues() => apps.values.map((a) => a.deepCopy());
AppsProvider() { AppsProvider({isBg = 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 {
@@ -132,17 +132,21 @@ class AppsProvider with ChangeNotifier {
APKDir.createSync(); APKDir.createSync();
} }
} }
// Load Apps into memory (in background, this is done later instead of in the constructor) if (!isBg) {
await loadApps(); // Load Apps into memory (in background processes, this is done later instead of in the constructor)
// Delete any partial APKs await loadApps();
var cutoff = DateTime.now().subtract(const Duration(days: 7)); // Delete any partial APKs (if safe to do so)
APKDir.listSync() var cutoff = DateTime.now().subtract(const Duration(days: 7));
.where((element) => APKDir.listSync()
element.path.endsWith('.part') || .where((element) =>
element.statSync().modified.isBefore(cutoff)) element.path.endsWith('.part') ||
.forEach((partialApk) { element.statSync().modified.isBefore(cutoff))
partialApk.delete(recursive: true); .forEach((partialApk) {
}); if (!areDownloadsRunning()) {
partialApk.delete(recursive: true);
}
});
}
}(); }();
} }