|
@@ -2395,19 +2395,22 @@ const char *SDL_AndroidGetInternalStoragePath(void)
|
|
|
return s_AndroidInternalFilesPath;
|
|
|
}
|
|
|
|
|
|
-int SDL_AndroidGetExternalStorageState(void)
|
|
|
+int SDL_AndroidGetExternalStorageState(Uint32 *state)
|
|
|
{
|
|
|
struct LocalReferenceHolder refs = LocalReferenceHolder_Setup(__FUNCTION__);
|
|
|
jmethodID mid;
|
|
|
jclass cls;
|
|
|
jstring stateString;
|
|
|
- const char *state;
|
|
|
+ const char *state_string;
|
|
|
int stateFlags;
|
|
|
|
|
|
JNIEnv *env = Android_JNI_GetEnv();
|
|
|
if (!LocalReferenceHolder_Init(&refs, env)) {
|
|
|
LocalReferenceHolder_Cleanup(&refs);
|
|
|
- return 0;
|
|
|
+ if (state) {
|
|
|
+ *state = 0;
|
|
|
+ }
|
|
|
+ return -1;
|
|
|
}
|
|
|
|
|
|
cls = (*env)->FindClass(env, "android/os/Environment");
|
|
@@ -2415,23 +2418,26 @@ int SDL_AndroidGetExternalStorageState(void)
|
|
|
"getExternalStorageState", "()Ljava/lang/String;");
|
|
|
stateString = (jstring)(*env)->CallStaticObjectMethod(env, cls, mid);
|
|
|
|
|
|
- state = (*env)->GetStringUTFChars(env, stateString, NULL);
|
|
|
+ state_string = (*env)->GetStringUTFChars(env, stateString, NULL);
|
|
|
|
|
|
/* Print an info message so people debugging know the storage state */
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "SDL", "external storage state: %s", state);
|
|
|
+ __android_log_print(ANDROID_LOG_INFO, "SDL", "external storage state: %s", state_string);
|
|
|
|
|
|
- if (SDL_strcmp(state, "mounted") == 0) {
|
|
|
+ if (SDL_strcmp(state_string, "mounted") == 0) {
|
|
|
stateFlags = SDL_ANDROID_EXTERNAL_STORAGE_READ |
|
|
|
SDL_ANDROID_EXTERNAL_STORAGE_WRITE;
|
|
|
- } else if (SDL_strcmp(state, "mounted_ro") == 0) {
|
|
|
+ } else if (SDL_strcmp(state_string, "mounted_ro") == 0) {
|
|
|
stateFlags = SDL_ANDROID_EXTERNAL_STORAGE_READ;
|
|
|
} else {
|
|
|
stateFlags = 0;
|
|
|
}
|
|
|
- (*env)->ReleaseStringUTFChars(env, stateString, state);
|
|
|
+ (*env)->ReleaseStringUTFChars(env, stateString, state_string);
|
|
|
|
|
|
LocalReferenceHolder_Cleanup(&refs);
|
|
|
- return stateFlags;
|
|
|
+ if (state) {
|
|
|
+ *state = stateFlags;
|
|
|
+ }
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
const char *SDL_AndroidGetExternalStoragePath(void)
|