summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2015-06-07 23:14:34 -0400
committerRyan Houdek <Sonicadvance1@gmail.com>2015-06-07 23:14:34 -0400
commit9521bc1fc62b3e92ebd7ba855608fa86a15529ba (patch)
tree91f9ccdb51a101725c7e572f1fd8935b4c3f0422 /Source/Android/app/src/main/java
parentc79dd40e721650c2951aad9aab890a0c3385c9e9 (diff)
parentd752ee73c0f1957a36db6171130377754a30915e (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.java33
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.java18
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);