diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-06-07 23:14:34 -0400 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2015-06-07 23:14:34 -0400 |
| commit | 9521bc1fc62b3e92ebd7ba855608fa86a15529ba (patch) | |
| tree | 91f9ccdb51a101725c7e572f1fd8935b4c3f0422 /Source/Android/app/src/main/java | |
| parent | c79dd40e721650c2951aad9aab890a0c3385c9e9 (diff) | |
| parent | d752ee73c0f1957a36db6171130377754a30915e (diff) | |
Merge pull request #2558 from sigmabeta/android-panic-alerts
Android: Display Panic Alerts on-screen as a Toast message.
Diffstat (limited to 'Source/Android/app/src/main/java')
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.java | 33 | ||||
| -rw-r--r-- | Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java | 18 |
2 files changed, 51 insertions, 0 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 12259de37b..d8b1b6c112 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 @@ -8,6 +8,9 @@ package org.dolphinemu.dolphinemu; import android.util.Log; import android.view.Surface; +import android.widget.Toast; + +import org.dolphinemu.dolphinemu.activities.EmulationActivity; /** * Class which contains methods that interact @@ -15,6 +18,8 @@ import android.view.Surface; */ public final class NativeLibrary { + private static EmulationActivity mEmulationActivity; + /** * Button type for use in onTouchEvent */ @@ -235,6 +240,13 @@ public final class NativeLibrary /** Native EGL functions not exposed by Java bindings **/ public static native void eglBindAPI(int api); + /** + * The methods C++ uses to find references to Java classes and methods + * are really expensive. Rather than calling them every time we want to + * run them, do it once when we load the native library. + */ + private static native void CacheClassesAndMethods(); + static { try @@ -245,5 +257,26 @@ public final class NativeLibrary { Log.e("NativeLibrary", ex.toString()); } + + CacheClassesAndMethods(); + } + + public static void displayAlertMsg(final String alert) + { + Log.e("DolphinEmu", "Alert: " + alert); + mEmulationActivity.runOnUiThread(new Runnable() + { + @Override + public void run() + { + Toast.makeText(mEmulationActivity, "Panic Alert: " + alert, Toast.LENGTH_LONG).show(); + } + }); + } + + public static void setEmulationActivity(EmulationActivity emulationActivity) + { + Log.v("DolphinEmu", "Registering EmulationActivity."); + mEmulationActivity = emulationActivity; } } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java index de7ebb17d3..b4c61bea0e 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.Log; import android.view.InputDevice; import android.view.KeyEvent; import android.view.Menu; @@ -92,6 +93,23 @@ public final class EmulationActivity extends Activity } @Override + protected void onStart() + { + super.onStart(); + Log.d("DolphinEmu", "EmulationActivity starting."); + NativeLibrary.setEmulationActivity(this); + } + + @Override + protected void onStop() + { + super.onStop(); + Log.d("DolphinEmu", "EmulationActivity stopping."); + + NativeLibrary.setEmulationActivity(null); + } + + @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); |
