From c0091c838dc8d806c17fcaa65cb840b01aac87aa Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Fri, 25 Aug 2023 20:35:42 +0000 Subject: [PATCH] use file descriptors to load game list --- .../org/ryujinx/android/viewmodels/GameModel.kt | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/viewmodels/GameModel.kt b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/viewmodels/GameModel.kt index a06edcaff..1a0490827 100644 --- a/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/viewmodels/GameModel.kt +++ b/src/RyujinxAndroid/app/src/main/java/org/ryujinx/android/viewmodels/GameModel.kt @@ -1,11 +1,9 @@ package org.ryujinx.android.viewmodels import android.content.Context -import android.net.Uri import android.os.ParcelFileDescriptor import androidx.documentfile.provider.DocumentFile import com.anggrayudi.storage.file.extension -import org.ryujinx.android.Helpers import org.ryujinx.android.RyujinxNative @@ -21,8 +19,9 @@ class GameModel(var file: DocumentFile, val context: Context) { init { fileName = file.name - val absPath = getPath() - val gameInfo = RyujinxNative().deviceGetGameInfoFromPath(absPath ?: "") + var pid = open() + val gameInfo = RyujinxNative().deviceGetGameInfo(pid, file.extension.contains("xci")) + close() fileSize = gameInfo.FileSize titleId = gameInfo.TitleId @@ -32,13 +31,6 @@ class GameModel(var file: DocumentFile, val context: Context) { iconCache = gameInfo.IconCache } - fun getPath() : String? { - var uri = file.uri - if (uri.scheme != "file") - uri = Uri.parse("file://" + Helpers.getPath(context, file.uri)) - return uri.path - } - fun open() : Int { descriptor = context.contentResolver.openFileDescriptor(file.uri, "rw")