Skip to content

Commit

Permalink
fix: Delete cached APK only after successful patch (#2331)
Browse files Browse the repository at this point in the history
  • Loading branch information
BenjaminHalko authored Dec 24, 2024
1 parent 1d6b074 commit 4ba7ec1
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 7 deletions.
7 changes: 0 additions & 7 deletions lib/services/patcher_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -175,13 +175,6 @@ class PatcherAPI {
final File inApkFile = File('${workDir.path}/in.apk');
await File(apkFilePath).copy(inApkFile.path);

if (isFromStorage) {
// The selected apk was copied to cacheDir by the file picker, so it's not needed anymore.
// rename() can't be used here, as Android system also counts the size of files moved out from cacheDir
// as part of the app's cache size.
File(apkFilePath).delete();
}

outFile = File('${workDir.path}/out.apk');

final Directory tmpDir =
Expand Down
6 changes: 6 additions & 0 deletions lib/ui/views/installer/installer_viewmodel.dart
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
// ignore_for_file: use_build_context_synchronously
import 'dart:io';

import 'package:device_apps/device_apps.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
Expand Down Expand Up @@ -566,6 +568,10 @@ class InstallerViewModel extends BaseViewModel {
Future<void> cleanPatcher() async {
try {
_patcherAPI.cleanPatcher();
if (_app.isFromStorage) {
// The selected apk was copied to cacheDir by the file picker, so it's not needed anymore.
File(_app.apkFilePath).delete();
}
locator<PatcherViewModel>().selectedApp = null;
locator<PatcherViewModel>().selectedPatches.clear();
locator<PatcherViewModel>().notifyListeners();
Expand Down

0 comments on commit 4ba7ec1

Please sign in to comment.