From 1659cc5294647fd42a7d8d58f255093c4549a3bb Mon Sep 17 00:00:00 2001
From: Emmanuel Hansen <emmausssss@gmail.com>
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")