NativeLibrary: Create displayToastMsg Method

This commit is contained in:
mitaclaw 2024-04-05 16:09:01 -07:00
parent d3073353a7
commit be27c4f877
3 changed files with 18 additions and 3 deletions

View File

@ -454,6 +454,14 @@ public final class NativeLibrary
private static native String GetCurrentTitleDescriptionUnchecked(); private static native String GetCurrentTitleDescriptionUnchecked();
@Keep
public static void displayToastMsg(final String text, final boolean long_length)
{
final int length = long_length ? Toast.LENGTH_LONG : Toast.LENGTH_SHORT;
new Handler(Looper.getMainLooper())
.post(() -> Toast.makeText(DolphinApplication.getAppContext(), text, length).show());
}
@Keep @Keep
public static boolean displayAlertMsg(final String caption, final String text, public static boolean displayAlertMsg(final String caption, final String text,
final boolean yesNo, final boolean isWarning, final boolean nonBlocking) final boolean yesNo, final boolean isWarning, final boolean nonBlocking)
@ -466,9 +474,7 @@ public final class NativeLibrary
// and are allowed to block. As a fallback, we can use toasts. // and are allowed to block. As a fallback, we can use toasts.
if (emulationActivity == null || nonBlocking) if (emulationActivity == null || nonBlocking)
{ {
new Handler(Looper.getMainLooper()).post( displayToastMsg(text, true);
() -> Toast.makeText(DolphinApplication.getAppContext(), text, Toast.LENGTH_LONG)
.show());
} }
else else
{ {

View File

@ -12,6 +12,7 @@ static JavaVM* s_java_vm;
static jclass s_string_class; static jclass s_string_class;
static jclass s_native_library_class; static jclass s_native_library_class;
static jmethodID s_display_toast_msg;
static jmethodID s_display_alert_msg; static jmethodID s_display_alert_msg;
static jmethodID s_update_touch_pointer; static jmethodID s_update_touch_pointer;
static jmethodID s_on_title_changed; static jmethodID s_on_title_changed;
@ -146,6 +147,11 @@ jclass GetNativeLibraryClass()
return s_native_library_class; return s_native_library_class;
} }
jmethodID GetDisplayToastMsg()
{
return s_display_toast_msg;
}
jmethodID GetDisplayAlertMsg() jmethodID GetDisplayAlertMsg()
{ {
return s_display_alert_msg; return s_display_alert_msg;
@ -528,6 +534,8 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary"); const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary");
s_native_library_class = reinterpret_cast<jclass>(env->NewGlobalRef(native_library_class)); s_native_library_class = reinterpret_cast<jclass>(env->NewGlobalRef(native_library_class));
s_display_toast_msg =
env->GetStaticMethodID(s_native_library_class, "displayToastMsg", "(Ljava/lang/String;Z)V");
s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg", s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg",
"(Ljava/lang/String;Ljava/lang/String;ZZZ)Z"); "(Ljava/lang/String;Ljava/lang/String;ZZZ)Z");
s_update_touch_pointer = s_update_touch_pointer =

View File

@ -12,6 +12,7 @@ JNIEnv* GetEnvForThread();
jclass GetStringClass(); jclass GetStringClass();
jclass GetNativeLibraryClass(); jclass GetNativeLibraryClass();
jmethodID GetDisplayToastMsg();
jmethodID GetDisplayAlertMsg(); jmethodID GetDisplayAlertMsg();
jmethodID GetUpdateTouchPointer(); jmethodID GetUpdateTouchPointer();
jmethodID GetOnTitleChanged(); jmethodID GetOnTitleChanged();