android: Fix compression and decompression on vanilla build (#1939)

This commit is contained in:
PabloMK7 2026-03-24 18:58:56 +01:00 committed by GitHub
parent 9b045bf837
commit d4e9daa739
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -36,6 +36,7 @@ import org.citra.citra_emu.adapters.GameAdapter
import org.citra.citra_emu.databinding.FragmentGamesBinding import org.citra.citra_emu.databinding.FragmentGamesBinding
import org.citra.citra_emu.features.settings.model.Settings import org.citra.citra_emu.features.settings.model.Settings
import org.citra.citra_emu.model.Game import org.citra.citra_emu.model.Game
import org.citra.citra_emu.utils.BuildUtil
import org.citra.citra_emu.viewmodel.CompressProgressDialogViewModel import org.citra.citra_emu.viewmodel.CompressProgressDialogViewModel
import org.citra.citra_emu.viewmodel.GamesViewModel import org.citra.citra_emu.viewmodel.GamesViewModel
import org.citra.citra_emu.viewmodel.HomeViewModel import org.citra.citra_emu.viewmodel.HomeViewModel
@ -60,8 +61,14 @@ class GamesFragment : Fragment() {
companion object { companion object {
fun doCompression(fragment: Fragment, gamesViewModel: GamesViewModel, inputPath: String?, outputUri: Uri?, shouldCompress: Boolean) { fun doCompression(fragment: Fragment, gamesViewModel: GamesViewModel, inputPath: String?, outputUri: Uri?, shouldCompress: Boolean) {
if (outputUri != null) { if (outputUri != null) {
val outputPath: String =
if (!BuildUtil.isGooglePlayBuild) {
"!" + NativeLibrary.getNativePath(outputUri)
} else {
outputUri.toString()
}
CompressProgressDialogViewModel.reset() CompressProgressDialogViewModel.reset()
val dialog = CompressProgressDialogFragment.newInstance(shouldCompress, outputUri.toString()) val dialog = CompressProgressDialogFragment.newInstance(shouldCompress, outputPath)
dialog.showNow( dialog.showNow(
fragment.requireActivity().supportFragmentManager, fragment.requireActivity().supportFragmentManager,
CompressProgressDialogFragment.TAG CompressProgressDialogFragment.TAG
@ -69,9 +76,9 @@ class GamesFragment : Fragment() {
fragment.lifecycleScope.launch(Dispatchers.IO) { fragment.lifecycleScope.launch(Dispatchers.IO) {
val status = if (shouldCompress) { val status = if (shouldCompress) {
NativeLibrary.compressFile(inputPath, outputUri.toString()) NativeLibrary.compressFile(inputPath, outputPath)
} else { } else {
NativeLibrary.decompressFile(inputPath, outputUri.toString()) NativeLibrary.decompressFile(inputPath, outputPath)
} }
fragment.requireActivity().runOnUiThread { fragment.requireActivity().runOnUiThread {