From b5bde8451ca65161b9da43931dbf81d122630406 Mon Sep 17 00:00:00 2001
From: german77 <juangerman-13@hotmail.com>
Date: Sat, 25 Nov 2023 10:53:59 -0600
Subject: [PATCH] android: input: Flip abxy on redmagic controllers

---
 .../org/yuzu/yuzu_emu/utils/InputHandler.kt   | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
index 47bde5081..a38822c94 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/InputHandler.kt
@@ -27,6 +27,7 @@ object InputHandler {
             0x054C -> getInputDS5ButtonKey(event.keyCode)
             0x057E -> getInputJoyconButtonKey(event.keyCode)
             0x1532 -> getInputRazerButtonKey(event.keyCode)
+            0x3537 -> getInputRedmagicButtonKey(event.keyCode)
             else -> getInputGenericButtonKey(event.keyCode)
         }
 
@@ -227,6 +228,24 @@ object InputHandler {
         }
     }
 
+    private fun getInputRedmagicButtonKey(key: Int): Int {
+        return when (key) {
+            KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_B
+            KeyEvent.KEYCODE_BUTTON_B -> NativeLibrary.ButtonType.BUTTON_A
+            KeyEvent.KEYCODE_BUTTON_X -> NativeLibrary.ButtonType.BUTTON_Y
+            KeyEvent.KEYCODE_BUTTON_Y -> NativeLibrary.ButtonType.BUTTON_X
+            KeyEvent.KEYCODE_BUTTON_L1 -> NativeLibrary.ButtonType.TRIGGER_L
+            KeyEvent.KEYCODE_BUTTON_R1 -> NativeLibrary.ButtonType.TRIGGER_R
+            KeyEvent.KEYCODE_BUTTON_L2 -> NativeLibrary.ButtonType.TRIGGER_ZL
+            KeyEvent.KEYCODE_BUTTON_R2 -> NativeLibrary.ButtonType.TRIGGER_ZR
+            KeyEvent.KEYCODE_BUTTON_THUMBL -> NativeLibrary.ButtonType.STICK_L
+            KeyEvent.KEYCODE_BUTTON_THUMBR -> NativeLibrary.ButtonType.STICK_R
+            KeyEvent.KEYCODE_BUTTON_START -> NativeLibrary.ButtonType.BUTTON_PLUS
+            KeyEvent.KEYCODE_BUTTON_SELECT -> NativeLibrary.ButtonType.BUTTON_MINUS
+            else -> -1
+        }
+    }
+
     private fun getInputGenericButtonKey(key: Int): Int {
         return when (key) {
             KeyEvent.KEYCODE_BUTTON_A -> NativeLibrary.ButtonType.BUTTON_A