diff --git a/app/src/main/java/com/geode/launcher/updater/ReleaseManager.kt b/app/src/main/java/com/geode/launcher/updater/ReleaseManager.kt index f47410ed..bb6b4e9e 100644 --- a/app/src/main/java/com/geode/launcher/updater/ReleaseManager.kt +++ b/app/src/main/java/com/geode/launcher/updater/ReleaseManager.kt @@ -206,7 +206,8 @@ class ReleaseManager private constructor( } if (!outputDir.renameTo(finalDir)) { - throw IOException("failed to rename resources output directory") + println("Failed to rename temporary directory!") + DownloadUtils.copyDirectory(outputDir, finalDir) } } ) diff --git a/app/src/main/java/com/geode/launcher/utils/DownloadUtils.kt b/app/src/main/java/com/geode/launcher/utils/DownloadUtils.kt index f1a082ff..5bb459ab 100644 --- a/app/src/main/java/com/geode/launcher/utils/DownloadUtils.kt +++ b/app/src/main/java/com/geode/launcher/utils/DownloadUtils.kt @@ -160,6 +160,13 @@ object DownloadUtils { }} } } + + suspend fun copyDirectory(sourceFile: File, outputFile: File) = withContext(Dispatchers.IO) { + sourceFile.copyRecursively( + outputFile, + overwrite = true + ) + } } // based on