summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2020-10-19 11:55:24 +0200
committerGitHub <noreply@github.com>2020-10-19 11:55:24 +0200
commit150282f7b22db7213dde4c86b5473c67cf7104af (patch)
tree0558956319ea33709eddf8f4a3221c665e231494 /Source/Android/app/src/main/java
parent653f89701db560ffe2c9421c81f3b5347c8dc46f (diff)
parent8d91b4ea8c2dafeffd01d5bea0ac30113cd55222 (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.java20
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