diff options
| author | Léo Lam <leo@leolam.fr> | 2020-10-19 11:55:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-19 11:55:24 +0200 |
| commit | 150282f7b22db7213dde4c86b5473c67cf7104af (patch) | |
| tree | 0558956319ea33709eddf8f4a3221c665e231494 /Source/Android/app/src/main/java | |
| parent | 653f89701db560ffe2c9421c81f3b5347c8dc46f (diff) | |
| parent | 8d91b4ea8c2dafeffd01d5bea0ac30113cd55222 (diff) | |
Merge pull request #9156 from JosJuice/android-alertmsg-outside-emulation
Android: Show alert messages as toasts outside of emulation
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java index 44c1ab4f15..d37856d402 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java @@ -6,6 +6,8 @@ package org.dolphinemu.dolphinemu; +import android.os.Handler; +import android.os.Looper; import android.util.DisplayMetrics; import android.view.Surface; import android.widget.Toast; @@ -451,23 +453,19 @@ public final class NativeLibrary Log.error("[NativeLibrary] Alert: " + text); final EmulationActivity emulationActivity = sEmulationActivity.get(); boolean result = false; - if (emulationActivity == null) - { - Log.warning("[NativeLibrary] EmulationActivity is null, can't do panic alert."); - } - else if (emulationActivity.isIgnoringWarnings() && isWarning) + if (isWarning && emulationActivity != null && emulationActivity.isIgnoringWarnings()) { return true; } else { - // AlertMessages while the core is booting will deadlock when WaitUntilDoneBooting is called. - // Report the AlertMessage text as a toast instead. - if (IsBooting()) + // AlertMessages while the core is booting will deadlock if WaitUntilDoneBooting is called. + // We also can't use AlertMessages unless we have a non-null activity reference. + // As a fallback, we use toasts instead. + if (emulationActivity == null || IsBooting()) { - emulationActivity.runOnUiThread( - () -> Toast.makeText(emulationActivity.getApplicationContext(), text, - Toast.LENGTH_LONG) + new Handler(Looper.getMainLooper()).post( + () -> Toast.makeText(DolphinApplication.getAppContext(), text, Toast.LENGTH_LONG) .show()); } else |
