From d127b9cd006b7cd5aa8226f6629241e714ccbad2 Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Thu, 4 Feb 2021 12:28:47 +0700 Subject: [PATCH] [Component unpacker] Cleanup folder before extract --- .../net/kdt/pojavlaunch/PojavLoginActivity.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 89aafbb76..c12858570 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -337,18 +337,29 @@ public class PojavLoginActivity extends BaseActivity } private void unpackComponent(AssetManager am, String component) throws IOException { + File versionFile = new File(Tools.DIR_GAME_NEW + "/" + component + "/version"); InputStream is = am.open("components/" + component + "/version"); - if(!new File(Tools.DIR_GAME_NEW + "/" + component + "/version").exists()) { + if(!versionFile.exists()) { + if (versionFile.getParentFile().exists() && versionFile.getParentFile().isDirectory()) { + FileUtils.deleteDirectory(versionFile.getParentFile()); + } + versionFile.getParentFile().mkdir(); + Log.i("UnpackPrep", component + ": Pack was installed manually, or does not exist, unpacking new..."); String[] fileList = am.list("components/" + component); for(String s : fileList) { Tools.copyAssetFile(this, "components/" + component + "/" + s, Tools.DIR_GAME_NEW + "/" + component, true); } } else { - FileInputStream fis = new FileInputStream(new File(Tools.DIR_GAME_NEW + "/" + component + "/version")); + FileInputStream fis = new FileInputStream(versionFile); String release1 = Tools.read(is); String release2 = Tools.read(fis); if (!release1.equals(release2)) { + if (versionFile.getParentFile().exists() && versionFile.getParentFile().isDirectory()) { + FileUtils.deleteDirectory(versionFile.getParentFile()); + } + versionFile.getParentFile().mkdir(); + String[] fileList = am.list("components/" + component); for (String s : fileList) { Tools.copyAssetFile(this, "components/" + component + "/" + s, Tools.DIR_GAME_NEW + "/" + component, true);