summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt
new file mode 100644
index 000000000..f5a535327
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameIconRequestHandler.kt
@@ -0,0 +1,22 @@
+package org.yuzu.yuzu_emu.utils
+
+import android.graphics.BitmapFactory
+import com.squareup.picasso.Picasso
+import com.squareup.picasso.Request
+import com.squareup.picasso.RequestHandler
+import org.yuzu.yuzu_emu.NativeLibrary
+
+class GameIconRequestHandler : RequestHandler() {
+ override fun canHandleRequest(data: Request): Boolean {
+ return "content" == data.uri.scheme
+ }
+
+ override fun load(request: Request, networkPolicy: Int): Result {
+ val gamePath = request.uri.toString()
+ val data = NativeLibrary.GetIcon(gamePath)
+ val options = BitmapFactory.Options()
+ options.inMutable = true
+ val bitmap = BitmapFactory.decodeByteArray(data, 0, data.size, options)
+ return Result(bitmap, Picasso.LoadedFrom.DISK)
+ }
+}