From 9d1cf7b6453c23776b172ab2d9d9bc86b2c9aabc Mon Sep 17 00:00:00 2001 From: Thor963 Date: Tue, 22 Sep 2026 14:55:03 +0530 Subject: [PATCH] fix: stabilize logic platform parity, file cleanup refactor --- .../stallion/networkmanager/StallionPatchHandler.java | 5 ++++- .../java/com/stallion/utils/StallionSlotManager.java | 1 + ios/main/StallionPatchHandler.swift | 5 ++++- ios/main/StallionSlotManager.m | 9 +++++---- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/android/src/main/java/com/stallion/networkmanager/StallionPatchHandler.java b/android/src/main/java/com/stallion/networkmanager/StallionPatchHandler.java index c1dbf89..d25f5f6 100644 --- a/android/src/main/java/com/stallion/networkmanager/StallionPatchHandler.java +++ b/android/src/main/java/com/stallion/networkmanager/StallionPatchHandler.java @@ -50,7 +50,10 @@ public static void applyPatch(String baseBundlePath, String diffPath, boolean is // Create a temporary directory for the patched bundle File tempPatchedDir = new File(diffDir.getParent(), diffDir.getName() + "_patched_temp"); try { - // Copy base bundle to temporary location + // Clear any leftover temp dir, then copy base bundle + if (tempPatchedDir.exists()) { + StallionFileManager.deleteFileOrFolderSilently(tempPatchedDir); + } StallionFileManager.copyDirectory(baseBundleDir, tempPatchedDir); // Read and parse manifest.json diff --git a/android/src/main/java/com/stallion/utils/StallionSlotManager.java b/android/src/main/java/com/stallion/utils/StallionSlotManager.java index 1632085..747ca70 100644 --- a/android/src/main/java/com/stallion/utils/StallionSlotManager.java +++ b/android/src/main/java/com/stallion/utils/StallionSlotManager.java @@ -69,6 +69,7 @@ public static void stabilizeProd() { File newSlot = new File(baseFolderPath, StallionConfigConstants.PROD_DIRECTORY + StallionConfigConstants.NEW_FOLDER_SLOT); File stableSlot = new File(baseFolderPath, StallionConfigConstants.PROD_DIRECTORY + StallionConfigConstants.STABLE_FOLDER_SLOT); + StallionFileManager.deleteFileOrFolderSilently(stableSlot); StallionFileManager.copyDirectory(newSlot, stableSlot); String newReleaseHash = stateManager.stallionMeta.getProdNewHash(); diff --git a/ios/main/StallionPatchHandler.swift b/ios/main/StallionPatchHandler.swift index de55901..4f80b09 100644 --- a/ios/main/StallionPatchHandler.swift +++ b/ios/main/StallionPatchHandler.swift @@ -54,7 +54,10 @@ class StallionPatchHandler { } } - // Copy base bundle to temporary location + // Clear any leftover temp dir, then copy base bundle + if FileManager.default.fileExists(atPath: tempPatchedDir.path) { + try? FileManager.default.removeItem(at: tempPatchedDir) + } StallionFileManager.copyFileOrDirectory(from: baseBundlePath, to: tempPatchedDir.path) // Verify copy succeeded diff --git a/ios/main/StallionSlotManager.m b/ios/main/StallionSlotManager.m index bd15401..0886253 100644 --- a/ios/main/StallionSlotManager.m +++ b/ios/main/StallionSlotManager.m @@ -50,9 +50,9 @@ + (void)fallbackProd { StallionStateManager *stateManager = [StallionStateManager sharedInstance]; NSString *baseFolderPath = stateManager.stallionConfig.filesDirectory; - [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@%@%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.new_folder_slot]]; - [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@%@%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.stable_folder_slot]]; - [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@%@%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.temp_folder_slot]]; + [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@/%@/%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.new_folder_slot]]; + [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@/%@/%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.stable_folder_slot]]; + [StallionFileManager deleteFileOrFolderSilently:[NSString stringWithFormat:@"%@/%@/%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.temp_folder_slot]]; [stateManager clearStallionMeta]; } @@ -74,7 +74,8 @@ + (void)stabilizeProd { NSString *newSlotPath = [NSString stringWithFormat:@"%@/%@/%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.new_folder_slot]; NSString *stableSlotPath = [NSString stringWithFormat:@"%@/%@/%@", baseFolderPath, StallionObjConstants.prod_directory, StallionObjConstants.stable_folder_slot]; - [StallionFileManager moveFileFrom:newSlotPath to:stableSlotPath]; + [StallionFileManager deleteFileOrFolderSilently:stableSlotPath]; + [StallionFileManager copyFileOrDirectoryFrom:newSlotPath to:stableSlotPath]; NSString *newReleaseHash = stateManager.stallionMeta.prodNewHash; [stateManager.stallionMeta setProdStableHash:newReleaseHash];