Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed bug 3917 - Android, issues with getManifestEnvironmentVariable
Sylvain

What about getting some return code instead of creating another native function.
  • Loading branch information
slouken committed Nov 5, 2017
1 parent 2c5724e commit 50e422a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 13 deletions.
Expand Up @@ -513,7 +513,6 @@ public static native void onNativeTouch(int touchDevId, int pointerFingerId,
public static native void onNativeSurfaceDestroyed();
public static native String nativeGetHint(String name);
public static native void nativeSetenv(String name, String value);
public static native void nativeEnvironmentVariablesSet();

/**
* This method is called by SDL using JNI.
Expand Down Expand Up @@ -618,12 +617,12 @@ public static DisplayMetrics getDisplayDPI() {
/**
* This method is called by SDL using JNI.
*/
public static void getManifestEnvironmentVariables() {
public static boolean getManifestEnvironmentVariables() {
try {
ApplicationInfo applicationInfo = getContext().getPackageManager().getApplicationInfo(getContext().getPackageName(), PackageManager.GET_META_DATA);
Bundle bundle = applicationInfo.metaData;
if (bundle == null) {
return;
return false;
}
String prefix = "SDL_ENV.";
final int trimLength = prefix.length();
Expand All @@ -634,10 +633,12 @@ public static void getManifestEnvironmentVariables() {
nativeSetenv(name, value);
}
}
nativeEnvironmentVariablesSet();
/* environment variables set! */
return true;
} catch (Exception e) {
Log.v("SDL", "exception " + e.toString());
}
return false;
}

static class ShowTextInputTask implements Runnable {
Expand Down
15 changes: 6 additions & 9 deletions src/core/android/SDL_android.c
Expand Up @@ -251,7 +251,7 @@ static jfieldID fidSeparateMouseAndTouch;
static float fLastAccelerometer[3];
static SDL_bool bHasNewData;

static SDL_bool bHasEnvironmentVariables;
static SDL_bool bHasEnvironmentVariables = SDL_FALSE;

/*******************************************************************************
Functions called by JNI
Expand Down Expand Up @@ -324,7 +324,7 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSetupJNI)(JNIEnv* mEnv, jclass c
"openAPKExpansionInputStream", "(Ljava/lang/String;)Ljava/io/InputStream;");

midGetManifestEnvironmentVariables = (*mEnv)->GetStaticMethodID(mEnv, mActivityClass,
"getManifestEnvironmentVariables", "()V");
"getManifestEnvironmentVariables", "()Z");

midGetDisplayDPI = (*mEnv)->GetStaticMethodID(mEnv, mActivityClass, "getDisplayDPI", "()Landroid/util/DisplayMetrics;");

Expand Down Expand Up @@ -831,12 +831,6 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSetenv)(

}

JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeEnvironmentVariablesSet)(
JNIEnv* env, jclass cls)
{
bHasEnvironmentVariables = SDL_TRUE;
}

/*******************************************************************************
Functions called by SDL into Java
*******************************************************************************/
Expand Down Expand Up @@ -2143,7 +2137,10 @@ void Android_JNI_GetManifestEnvironmentVariables(void)

if (!bHasEnvironmentVariables) {
JNIEnv *env = Android_JNI_GetEnv();
(*env)->CallStaticVoidMethod(env, mActivityClass, midGetManifestEnvironmentVariables);
SDL_bool ret = (*env)->CallStaticBooleanMethod(env, mActivityClass, midGetManifestEnvironmentVariables);
if (ret) {
bHasEnvironmentVariables = SDL_TRUE;
}
}
}

Expand Down

0 comments on commit 50e422a

Please sign in to comment.