Changed signatures of methods in Java file to return boolean, adapted C++ file.
authorPhilipp Wiesemann <philipp.wiesemann@arcor.de>
Sun, 05 May 2013 15:54:56 +0200
changeset 7149 534891ad4897
parent 7148 700a60e425cc
child 7150 151aa63ab281
Changed signatures of methods in Java file to return boolean, adapted C++ file. This way more checking for errors is possible which is currently not done here.
android-project/src/org/libsdl/app/SDLActivity.java
src/core/android/SDL_android.cpp
--- a/android-project/src/org/libsdl/app/SDLActivity.java	Sun May 05 15:50:21 2013 +0200
+++ b/android-project/src/org/libsdl/app/SDLActivity.java	Sun May 05 15:54:56 2013 +0200
@@ -170,11 +170,11 @@
     Handler commandHandler = new SDLCommandHandler();
 
     // Send a message from the SDLMain thread
-    void sendCommand(int command, Object data) {
+    boolean sendCommand(int command, Object data) {
         Message msg = commandHandler.obtainMessage();
         msg.arg1 = command;
         msg.obj = data;
-        commandHandler.sendMessage(msg);
+        return commandHandler.sendMessage(msg);
     }
 
     // C functions we call
@@ -202,13 +202,13 @@
         flipEGL();
     }
 
-    public static void setActivityTitle(String title) {
+    public static boolean setActivityTitle(String title) {
         // Called from SDLMain() thread and can't directly affect the view
-        mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title);
+        return mSingleton.sendCommand(COMMAND_CHANGE_TITLE, title);
     }
 
-    public static void sendMessage(int command, int param) {
-        mSingleton.sendCommand(command, Integer.valueOf(param));
+    public static boolean sendMessage(int command, int param) {
+        return mSingleton.sendCommand(command, Integer.valueOf(param));
     }
 
     public static Context getContext() {
@@ -271,9 +271,9 @@
         }
     }
 
-    public static void showTextInput(int x, int y, int w, int h) {
+    public static boolean showTextInput(int x, int y, int w, int h) {
         // Transfer the task to the main thread as a Runnable
-        mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h));
+        return mSingleton.commandHandler.post(new ShowTextInputTask(x, y, w, h));
     }
 
 
--- a/src/core/android/SDL_android.cpp	Sun May 05 15:50:21 2013 +0200
+++ b/src/core/android/SDL_android.cpp	Sun May 05 15:54:56 2013 +0200
@@ -339,10 +339,10 @@
 {
     jmethodID mid;
     JNIEnv *mEnv = Android_JNI_GetEnv();
-    mid = mEnv->GetStaticMethodID(mActivityClass,"setActivityTitle","(Ljava/lang/String;)V");
+    mid = mEnv->GetStaticMethodID(mActivityClass,"setActivityTitle","(Ljava/lang/String;)Z");
     if (mid) {
         jstring jtitle = reinterpret_cast<jstring>(mEnv->NewStringUTF(title));
-        mEnv->CallStaticVoidMethod(mActivityClass, mid, jtitle);
+        mEnv->CallStaticBooleanMethod(mActivityClass, mid, jtitle);
         mEnv->DeleteLocalRef(jtitle);
     }
 }
@@ -1085,12 +1085,12 @@
     if (!env) {
         return -1;
     }
-    jmethodID mid = env->GetStaticMethodID(mActivityClass, "sendMessage", "(II)V");
+    jmethodID mid = env->GetStaticMethodID(mActivityClass, "sendMessage", "(II)Z");
     if (!mid) {
         return -1;
     }
-    env->CallStaticVoidMethod(mActivityClass, mid, command, param);
-    return 0;
+    jboolean success = env->CallStaticBooleanMethod(mActivityClass, mid, command, param);
+    return success ? 0 : -1;
 }
 
 extern "C" void Android_JNI_ShowTextInput(SDL_Rect *inputRect)
@@ -1100,11 +1100,11 @@
         return;
     }
 
-    jmethodID mid = env->GetStaticMethodID(mActivityClass, "showTextInput", "(IIII)V");
+    jmethodID mid = env->GetStaticMethodID(mActivityClass, "showTextInput", "(IIII)Z");
     if (!mid) {
         return;
     }
-    env->CallStaticVoidMethod( mActivityClass, mid,
+    env->CallStaticBooleanMethod( mActivityClass, mid,
                                inputRect->x,
                                inputRect->y,
                                inputRect->w,