Skip to content

Commit 282e43d

Browse files
authored
Merge pull request kivy#1690 from j-devel/use-sdl2-nativeSetenv
Use nativeSetenv() provided by SDL2 and cleanups
2 parents e86f346 + 02519cc commit 282e43d

File tree

7 files changed

+42
-73
lines changed

7 files changed

+42
-73
lines changed

pythonforandroid/bootstraps/common/build/jni/application/src/start.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -458,19 +458,20 @@ JNIEXPORT void JNICALL Java_org_kivy_android_PythonService_nativeStart(
458458
#if defined(BOOTSTRAP_NAME_WEBVIEW) || defined(BOOTSTRAP_NAME_SERVICEONLY)
459459
// Webview and service_only uses some more functions:
460460

461-
void Java_org_kivy_android_PythonActivity_nativeSetEnv(
462-
JNIEnv* env, jclass jcls,
463-
jstring j_name, jstring j_value)
464-
/* JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_nativeSetEnv( */
465-
/* JNIEnv* env, jclass jcls, */
466-
/* jstring j_name, jstring j_value) */
461+
void Java_org_kivy_android_PythonActivity_nativeSetenv(
462+
JNIEnv* env, jclass cls,
463+
jstring name, jstring value)
464+
//JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSetenv)(
465+
// JNIEnv* env, jclass cls,
466+
// jstring name, jstring value)
467467
{
468-
jboolean iscopy;
469-
const char *name = (*env)->GetStringUTFChars(env, j_name, &iscopy);
470-
const char *value = (*env)->GetStringUTFChars(env, j_value, &iscopy);
471-
setenv(name, value, 1);
472-
(*env)->ReleaseStringUTFChars(env, j_name, name);
473-
(*env)->ReleaseStringUTFChars(env, j_value, value);
468+
const char *utfname = (*env)->GetStringUTFChars(env, name, NULL);
469+
const char *utfvalue = (*env)->GetStringUTFChars(env, value, NULL);
470+
471+
SDL_setenv(utfname, utfvalue, 1);
472+
473+
(*env)->ReleaseStringUTFChars(env, name, utfname);
474+
(*env)->ReleaseStringUTFChars(env, value, utfvalue);
474475
}
475476

476477

pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -151,9 +151,9 @@ protected void onPostExecute(String result) {
151151

152152
Project p = Project.scanDirectory(path);
153153
String entry_point = getEntryPoint(p.dir);
154-
SDLActivity.nativeSetEnv("ANDROID_ENTRYPOINT", p.dir + "/" + entry_point);
155-
SDLActivity.nativeSetEnv("ANDROID_ARGUMENT", p.dir);
156-
SDLActivity.nativeSetEnv("ANDROID_APP_PATH", p.dir);
154+
SDLActivity.nativeSetenv("ANDROID_ENTRYPOINT", p.dir + "/" + entry_point);
155+
SDLActivity.nativeSetenv("ANDROID_ARGUMENT", p.dir);
156+
SDLActivity.nativeSetenv("ANDROID_APP_PATH", p.dir);
157157

158158
if (p != null) {
159159
if (p.landscape) {
@@ -173,18 +173,18 @@ protected void onPostExecute(String result) {
173173
}
174174
} else {
175175
String entry_point = getEntryPoint(app_root_dir);
176-
SDLActivity.nativeSetEnv("ANDROID_ENTRYPOINT", entry_point);
177-
SDLActivity.nativeSetEnv("ANDROID_ARGUMENT", app_root_dir);
178-
SDLActivity.nativeSetEnv("ANDROID_APP_PATH", app_root_dir);
176+
SDLActivity.nativeSetenv("ANDROID_ENTRYPOINT", entry_point);
177+
SDLActivity.nativeSetenv("ANDROID_ARGUMENT", app_root_dir);
178+
SDLActivity.nativeSetenv("ANDROID_APP_PATH", app_root_dir);
179179
}
180180

181181
String mFilesDirectory = mActivity.getFilesDir().getAbsolutePath();
182182
Log.v(TAG, "Setting env vars for start.c and Python to use");
183-
SDLActivity.nativeSetEnv("ANDROID_PRIVATE", mFilesDirectory);
184-
SDLActivity.nativeSetEnv("ANDROID_UNPACK", app_root_dir);
185-
SDLActivity.nativeSetEnv("PYTHONHOME", app_root_dir);
186-
SDLActivity.nativeSetEnv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
187-
SDLActivity.nativeSetEnv("PYTHONOPTIMIZE", "2");
183+
SDLActivity.nativeSetenv("ANDROID_PRIVATE", mFilesDirectory);
184+
SDLActivity.nativeSetenv("ANDROID_UNPACK", app_root_dir);
185+
SDLActivity.nativeSetenv("PYTHONHOME", app_root_dir);
186+
SDLActivity.nativeSetenv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
187+
SDLActivity.nativeSetenv("PYTHONOPTIMIZE", "2");
188188

189189
try {
190190
Log.v(TAG, "Access to our meta-data...");

pythonforandroid/bootstraps/sdl2/build/src/patches/SDLActivity.java.patch

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,6 @@
2525
Message msg = commandHandler.obtainMessage();
2626
msg.arg1 = command;
2727
msg.obj = data;
28-
@@ -709,6 +718,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
29-
public static native void nativeResume();
30-
public static native void onNativeDropFile(String filename);
31-
public static native void onNativeResize(int surfaceWidth, int surfaceHeight, int deviceWidth, int deviceHeight, int format, float rate);
32-
+ public static native void nativeSetEnv(String j_name, String j_value);
33-
public static native void onNativeKeyDown(int keycode);
34-
public static native void onNativeKeyUp(int keycode);
35-
public static native void onNativeKeyboardFocusLost();
3628
@@ -1051,6 +1061,21 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
3729
return Arrays.copyOf(filtered, used);
3830
}

pythonforandroid/bootstraps/service_only/build/src/main/java/org/kivy/android/PythonActivity.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,14 @@ public void onClick(DialogInterface dialog,int id) {
161161
String entry_point = getEntryPoint(app_root_dir);
162162

163163
Log.v(TAG, "Setting env vars for start.c and Python to use");
164-
PythonActivity.nativeSetEnv("ANDROID_ENTRYPOINT", entry_point);
165-
PythonActivity.nativeSetEnv("ANDROID_ARGUMENT", app_root_dir);
166-
PythonActivity.nativeSetEnv("ANDROID_APP_PATH", app_root_dir);
167-
PythonActivity.nativeSetEnv("ANDROID_PRIVATE", mFilesDirectory);
168-
PythonActivity.nativeSetEnv("ANDROID_UNPACK", app_root_dir);
169-
PythonActivity.nativeSetEnv("PYTHONHOME", app_root_dir);
170-
PythonActivity.nativeSetEnv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
171-
PythonActivity.nativeSetEnv("PYTHONOPTIMIZE", "2");
164+
PythonActivity.nativeSetenv("ANDROID_ENTRYPOINT", entry_point);
165+
PythonActivity.nativeSetenv("ANDROID_ARGUMENT", app_root_dir);
166+
PythonActivity.nativeSetenv("ANDROID_APP_PATH", app_root_dir);
167+
PythonActivity.nativeSetenv("ANDROID_PRIVATE", mFilesDirectory);
168+
PythonActivity.nativeSetenv("ANDROID_UNPACK", app_root_dir);
169+
PythonActivity.nativeSetenv("PYTHONHOME", app_root_dir);
170+
PythonActivity.nativeSetenv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
171+
PythonActivity.nativeSetenv("PYTHONOPTIMIZE", "2");
172172

173173
try {
174174
Log.v(TAG, "Access to our meta-data...");
@@ -404,7 +404,7 @@ public static void stop_service() {
404404
}
405405

406406

407-
public static native void nativeSetEnv(String j_name, String j_value);
407+
public static native void nativeSetenv(String name, String value);
408408
public static native int nativeInit(Object arguments);
409409

410410
}

pythonforandroid/bootstraps/webview/build/src/main/java/org/kivy/android/PythonActivity.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -189,14 +189,14 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
189189
String entry_point = getEntryPoint(app_root_dir);
190190

191191
Log.v(TAG, "Setting env vars for start.c and Python to use");
192-
PythonActivity.nativeSetEnv("ANDROID_ENTRYPOINT", entry_point);
193-
PythonActivity.nativeSetEnv("ANDROID_ARGUMENT", app_root_dir);
194-
PythonActivity.nativeSetEnv("ANDROID_APP_PATH", app_root_dir);
195-
PythonActivity.nativeSetEnv("ANDROID_PRIVATE", mFilesDirectory);
196-
PythonActivity.nativeSetEnv("ANDROID_UNPACK", app_root_dir);
197-
PythonActivity.nativeSetEnv("PYTHONHOME", app_root_dir);
198-
PythonActivity.nativeSetEnv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
199-
PythonActivity.nativeSetEnv("PYTHONOPTIMIZE", "2");
192+
PythonActivity.nativeSetenv("ANDROID_ENTRYPOINT", entry_point);
193+
PythonActivity.nativeSetenv("ANDROID_ARGUMENT", app_root_dir);
194+
PythonActivity.nativeSetenv("ANDROID_APP_PATH", app_root_dir);
195+
PythonActivity.nativeSetenv("ANDROID_PRIVATE", mFilesDirectory);
196+
PythonActivity.nativeSetenv("ANDROID_UNPACK", app_root_dir);
197+
PythonActivity.nativeSetenv("PYTHONHOME", app_root_dir);
198+
PythonActivity.nativeSetenv("PYTHONPATH", app_root_dir + ":" + app_root_dir + "/lib");
199+
PythonActivity.nativeSetenv("PYTHONOPTIMIZE", "2");
200200

201201
try {
202202
Log.v(TAG, "Access to our meta-data...");
@@ -461,7 +461,7 @@ public static void stop_service() {
461461
}
462462

463463

464-
public static native void nativeSetEnv(String j_name, String j_value);
464+
public static native void nativeSetenv(String name, String value);
465465
public static native int nativeInit(Object arguments);
466466

467467
}

pythonforandroid/recipes/sdl2/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ class LibSDL2Recipe(BootstrapNDKRecipe):
1313
depends = ['sdl2_image', 'sdl2_mixer', 'sdl2_ttf']
1414
conflicts = ['sdl', 'pygame', 'pygame_bootstrap_components']
1515

16-
patches = ['add_nativeSetEnv.patch']
17-
1816
def get_recipe_env(self, arch=None, with_flags_in_cc=True, with_python=True):
1917
env = super(LibSDL2Recipe, self).get_recipe_env(
2018
arch=arch, with_flags_in_cc=with_flags_in_cc, with_python=with_python)

pythonforandroid/recipes/sdl2/add_nativeSetEnv.patch

Lines changed: 0 additions & 22 deletions
This file was deleted.

0 commit comments

Comments
 (0)