From a7a5749d4fcd8406442927166ff46d44693df700 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Mon, 27 Jan 2025 19:55:12 -0500 Subject: [PATCH] Avoid JSON corruption when storage full (#2089) --- lib/providers/apps_provider.dart | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index 0132b4d..b787ab4 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -1454,8 +1454,10 @@ class AppsProvider with ChangeNotifier { app = getCorrectedInstallStatusAppIfPossible(app, info) ?? app; } if (!onlyIfExists || this.apps.containsKey(app.id)) { - File('${(await getAppsDir()).path}/${app.id}.json') - .writeAsStringSync(jsonEncode(app.toJson())); + String filePath = '${(await getAppsDir()).path}/${app.id}.json'; + File('$filePath.tmp') + .writeAsStringSync(jsonEncode(app.toJson())); // #2089 + File('$filePath.tmp').renameSync(filePath); } try { this.apps.update(app.id,