summaryrefslogtreecommitdiff
path: root/Source/Android
diff options
context:
space:
mode:
authorCharles Lombardo <clombardo169@gmail.com>2023-06-10 05:05:42 -0400
committerCharles Lombardo <clombardo169@gmail.com>2023-08-25 13:31:04 -0400
commit4ce069cf4fabdb5ea2b36c027227e9936a07b32d (patch)
treed3c1d90b11cb94444bbe4e90c4d915ee2f0a9569 /Source/Android
parent7c79ff01002e7743fe47026b30d6131786c2f492 (diff)
Android: Convert ControlReference to Kotlin
Diffstat (limited to 'Source/Android')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.java39
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.kt28
-rw-r--r--Source/Android/jni/AndroidCommon/IDCache.cpp2
3 files changed, 29 insertions, 40 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.java
deleted file mode 100644
index 66fd9fa02d..0000000000
--- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-package org.dolphinemu.dolphinemu.features.input.model.controlleremu;
-
-import androidx.annotation.Keep;
-import androidx.annotation.Nullable;
-
-/**
- * Represents a C++ ControlReference.
- *
- * The lifetime of this class is managed by C++ code. Calling methods on it after it's destroyed
- * in C++ is undefined behavior!
- */
-public class ControlReference
-{
- @Keep
- private final long mPointer;
-
- @Keep
- private ControlReference(long pointer)
- {
- mPointer = pointer;
- }
-
- public native double getState();
-
- public native String getExpression();
-
- /**
- * Sets the expression for this control reference.
- *
- * @param expr The new expression
- * @return null on success, a human-readable error on failure
- */
- @Nullable
- public native String setExpression(String expr);
-
- public native boolean isInput();
-}
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.kt
new file mode 100644
index 0000000000..cd0c7848a6
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference.kt
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.dolphinemu.dolphinemu.features.input.model.controlleremu
+
+import androidx.annotation.Keep
+
+/**
+ * Represents a C++ ControlReference.
+ *
+ * The lifetime of this class is managed by C++ code. Calling methods on it after it's destroyed
+ * in C++ is undefined behavior!
+ */
+@Keep
+class ControlReference private constructor(private val pointer: Long) {
+ external fun getState(): Double
+
+ external fun getExpression(): String
+
+ /**
+ * Sets the expression for this control reference.
+ *
+ * @param expr The new expression
+ * @return null on success, a human-readable error on failure
+ */
+ external fun setExpression(expr: String): String?
+
+ external fun isInput(): Boolean
+}
diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp
index a9bcf93b9c..60c3933dc4 100644
--- a/Source/Android/jni/AndroidCommon/IDCache.cpp
+++ b/Source/Android/jni/AndroidCommon/IDCache.cpp
@@ -717,7 +717,7 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
const jclass control_reference_class = env->FindClass(
"org/dolphinemu/dolphinemu/features/input/model/controlleremu/ControlReference");
s_control_reference_class = reinterpret_cast<jclass>(env->NewGlobalRef(control_reference_class));
- s_control_reference_pointer = env->GetFieldID(control_reference_class, "mPointer", "J");
+ s_control_reference_pointer = env->GetFieldID(control_reference_class, "pointer", "J");
s_control_reference_constructor = env->GetMethodID(control_reference_class, "<init>", "(J)V");
env->DeleteLocalRef(control_reference_class);