summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt3
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt3
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt12
3 files changed, 15 insertions, 3 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt
index b1d3c0040..b04d1208f 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/GamePropertiesFragment.kt
@@ -445,7 +445,8 @@ class GamePropertiesFragment : Fragment() {
445 val zipResult = FileUtil.zipFromInternalStorage( 445 val zipResult = FileUtil.zipFromInternalStorage(
446 File(saveLocation), 446 File(saveLocation),
447 saveLocation.replaceAfterLast("/", ""), 447 saveLocation.replaceAfterLast("/", ""),
448 BufferedOutputStream(requireContext().contentResolver.openOutputStream(result)) 448 BufferedOutputStream(requireContext().contentResolver.openOutputStream(result)),
449 compression = false
449 ) 450 )
450 return@newInstance when (zipResult) { 451 return@newInstance when (zipResult) {
451 TaskState.Completed -> getString(R.string.export_success) 452 TaskState.Completed -> getString(R.string.export_success)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index b4117d761..622ae996e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -625,7 +625,8 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
625 File(DirectoryInitialization.userDirectory!!), 625 File(DirectoryInitialization.userDirectory!!),
626 DirectoryInitialization.userDirectory!!, 626 DirectoryInitialization.userDirectory!!,
627 BufferedOutputStream(contentResolver.openOutputStream(result)), 627 BufferedOutputStream(contentResolver.openOutputStream(result)),
628 taskViewModel.cancelled 628 taskViewModel.cancelled,
629 compression = false
629 ) 630 )
630 return@newInstance when (zipResult) { 631 return@newInstance when (zipResult) {
631 TaskState.Completed -> getString(R.string.user_data_export_success) 632 TaskState.Completed -> getString(R.string.user_data_export_success)
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
index 00c6bf90e..132f002fb 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
@@ -21,6 +21,7 @@ import org.yuzu.yuzu_emu.model.TaskState
21import java.io.BufferedOutputStream 21import java.io.BufferedOutputStream
22import java.lang.NullPointerException 22import java.lang.NullPointerException
23import java.nio.charset.StandardCharsets 23import java.nio.charset.StandardCharsets
24import java.util.zip.Deflater
24import java.util.zip.ZipOutputStream 25import java.util.zip.ZipOutputStream
25import kotlin.IllegalStateException 26import kotlin.IllegalStateException
26 27
@@ -312,15 +313,23 @@ object FileUtil {
312 * @param inputFile File representation of the item that will be zipped 313 * @param inputFile File representation of the item that will be zipped
313 * @param rootDir Directory containing the inputFile 314 * @param rootDir Directory containing the inputFile
314 * @param outputStream Stream where the zip file will be output 315 * @param outputStream Stream where the zip file will be output
316 * @param cancelled [StateFlow] that reports whether this process has been cancelled
317 * @param compression Disables compression if true
315 */ 318 */
316 fun zipFromInternalStorage( 319 fun zipFromInternalStorage(
317 inputFile: File, 320 inputFile: File,
318 rootDir: String, 321 rootDir: String,
319 outputStream: BufferedOutputStream, 322 outputStream: BufferedOutputStream,
320 cancelled: StateFlow<Boolean>? = null 323 cancelled: StateFlow<Boolean>? = null,
324 compression: Boolean = true
321 ): TaskState { 325 ): TaskState {
322 try { 326 try {
323 ZipOutputStream(outputStream).use { zos -> 327 ZipOutputStream(outputStream).use { zos ->
328 if (!compression) {
329 zos.setMethod(ZipOutputStream.DEFLATED)
330 zos.setLevel(Deflater.NO_COMPRESSION)
331 }
332
324 inputFile.walkTopDown().forEach { file -> 333 inputFile.walkTopDown().forEach { file ->
325 if (cancelled?.value == true) { 334 if (cancelled?.value == true) {
326 return TaskState.Cancelled 335 return TaskState.Cancelled
@@ -338,6 +347,7 @@ object FileUtil {
338 } 347 }
339 } 348 }
340 } catch (e: Exception) { 349 } catch (e: Exception) {
350 Log.error("[FileUtil] Failed creating zip file - ${e.message}")
341 return TaskState.Failed 351 return TaskState.Failed
342 } 352 }
343 return TaskState.Completed 353 return TaskState.Completed