From 0280f3557c703beb4c14df7aab543349bfc001ea Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 6 Nov 2020 19:26:56 +0100 Subject: Android: Finish EmulationActivity from C++ This makes EmulationActivity automatically close if booting fails, and lets us get rid of s_emulation_end_event. --- Source/Android/jni/AndroidCommon/IDCache.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Source/Android/jni/AndroidCommon/IDCache.cpp') diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp index bebdea1a4b..70d40da5d8 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.cpp +++ b/Source/Android/jni/AndroidCommon/IDCache.cpp @@ -15,6 +15,7 @@ static jmethodID s_display_alert_msg; static jmethodID s_do_rumble; static jmethodID s_update_touch_pointer; static jmethodID s_on_title_changed; +static jmethodID s_finish_emulation_activity; static jclass s_game_file_class; static jfieldID s_game_file_pointer; @@ -94,6 +95,11 @@ jmethodID GetOnTitleChanged() return s_on_title_changed; } +jmethodID GetFinishEmulationActivity() +{ + return s_finish_emulation_activity; +} + jclass GetAnalyticsClass() { return s_analytics_class; @@ -221,6 +227,8 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) s_update_touch_pointer = env->GetStaticMethodID(s_native_library_class, "updateTouchPointer", "()V"); s_on_title_changed = env->GetStaticMethodID(s_native_library_class, "onTitleChanged", "()V"); + s_finish_emulation_activity = + env->GetStaticMethodID(s_native_library_class, "finishEmulationActivity", "()V"); env->DeleteLocalRef(native_library_class); const jclass game_file_class = env->FindClass("org/dolphinemu/dolphinemu/model/GameFile"); -- cgit v1.2.3 From ee52f465b10ef8541c642522f053d273492baf8f Mon Sep 17 00:00:00 2001 From: JosJuice Date: Fri, 6 Nov 2020 21:22:22 +0100 Subject: Android: Fix rotating EmulationActivity after boot fails Time for yet another new iteration of working around the "surface destruction during boot" problem... This time, the strategy is to use a mutex in MainAndroid.cpp. --- Source/Android/jni/AndroidCommon/IDCache.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Android/jni/AndroidCommon/IDCache.cpp') diff --git a/Source/Android/jni/AndroidCommon/IDCache.cpp b/Source/Android/jni/AndroidCommon/IDCache.cpp index 70d40da5d8..fcfd4ed177 100644 --- a/Source/Android/jni/AndroidCommon/IDCache.cpp +++ b/Source/Android/jni/AndroidCommon/IDCache.cpp @@ -222,7 +222,7 @@ jint JNI_OnLoad(JavaVM* vm, void* reserved) const jclass native_library_class = env->FindClass("org/dolphinemu/dolphinemu/NativeLibrary"); s_native_library_class = reinterpret_cast(env->NewGlobalRef(native_library_class)); s_display_alert_msg = env->GetStaticMethodID(s_native_library_class, "displayAlertMsg", - "(Ljava/lang/String;Ljava/lang/String;ZZ)Z"); + "(Ljava/lang/String;Ljava/lang/String;ZZZ)Z"); s_do_rumble = env->GetStaticMethodID(s_native_library_class, "rumble", "(ID)V"); s_update_touch_pointer = env->GetStaticMethodID(s_native_library_class, "updateTouchPointer", "()V"); -- cgit v1.2.3