diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.java deleted file mode 100644 index 6df6dfbac6b..00000000000 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.java +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later - -package org.dolphinemu.dolphinemu.utils; - -import androidx.annotation.Keep; - -public interface BooleanSupplier -{ - @Keep - boolean get(); -} diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.kt new file mode 100644 index 00000000000..b7dcd196e67 --- /dev/null +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/BooleanSupplier.kt @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +package org.dolphinemu.dolphinemu.utils + +import androidx.annotation.Keep + +/** + * java.util.function.BooleanSupplier is only provided starting with API 24, while Dolphin still supports API + * 21. API desugaring lets Kotlin/Java code use it on older Android versions, but JNI `FindClass("java/util/ + * function/BooleanSupplier")` isn’t desugared, so native code can’t look up that type reliably on API 23 and + * below. Because of that limitation, we keep our own interface instead of relying on the platform type. + */ +@Keep +fun interface BooleanSupplier { + fun get(): Boolean +}