Commit bc382e390aec0eba56992f94fd0da7c358f9f79e

Philipp Wiesemann 2014-10-23T16:45:18

Added an option to define libraries to be loaded on Android in a derived class. This way it is no more needed to modify SDLActivity.java to add own libraries.

diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java
index ec6f84c..58a360d 100644
--- a/android-project/src/org/libsdl/app/SDLActivity.java
+++ b/android-project/src/org/libsdl/app/SDLActivity.java
@@ -54,18 +54,28 @@ public class SDLActivity extends Activity {
     // Audio
     protected static AudioTrack mAudioTrack;
 
+    /**
+     * This method is called by SDL before loading the native shared libraries.
+     * It can be overridden to provide names of shared libraries to be loaded.
+     * The default implementation returns the defaults. It never returns null.
+     * An array returned by a new implementation must at least contain "SDL2".
+     * Also keep in mind that the order the libraries are loaded may matter.
+     * @return names of shared libraries to be loaded (e.g. "SDL2", "main").
+     */
+    protected String[] getLibraries() {
+        return new String[] {
+            "SDL2",
+            // "SDL2_image",
+            // "SDL2_mixer",
+            // "SDL2_net",
+            // "SDL2_ttf",
+            "main"
+        };
+    }
+
     // Load the .so
     public void loadLibraries() {
-       String AppLibraries[] = {
-         "SDL2",
-         // "SDL2_image",
-         // "SDL2_mixer",
-         // "SDL2_net",
-         // "SDL2_ttf",
-         "main"
-       };
-
-       for (String lib : AppLibraries) {
+       for (String lib : getLibraries()) {
           System.loadLibrary(lib);
        }
     }