mirror of https://github.com/encounter/SDL.git
Android: Added basic drop file support (thanks, "noxalus"!).
This lets SDL-based apps respond to "Open With" commands properly, as they can now obtain the requested path via a standard SDL dropfile event. This is only checked on startup, so apps don't get drop events at any other time, even if Android supports that, but this is still a definite improvement. Fixes Bugzilla #2762.
This commit is contained in:
parent
ae6555dff8
commit
72a244da41
|
@ -173,6 +173,17 @@ public class SDLActivity extends Activity {
|
|||
mLayout.addView(mSurface);
|
||||
|
||||
setContentView(mLayout);
|
||||
|
||||
// Get filename from "Open with" of another application
|
||||
Intent intent = getIntent();
|
||||
|
||||
if (intent != null && intent.getData() != null) {
|
||||
String filename = intent.getData().getPath();
|
||||
if (filename != null) {
|
||||
Log.v("SDL", "Get filename:" + filename);
|
||||
SDLActivity.onNativeDropFile(filename);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Events
|
||||
|
@ -397,6 +408,7 @@ public class SDLActivity extends Activity {
|
|||
public static native void nativeQuit();
|
||||
public static native void nativePause();
|
||||
public static native void nativeResume();
|
||||
public static native void onNativeDropFile(String filename);
|
||||
public static native void onNativeResize(int x, int y, int format, float rate);
|
||||
public static native int onNativePadDown(int device_id, int keycode);
|
||||
public static native int onNativePadUp(int device_id, int keycode);
|
||||
|
|
|
@ -141,6 +141,16 @@ JNIEXPORT void JNICALL SDL_Android_Init(JNIEnv* mEnv, jclass cls)
|
|||
__android_log_print(ANDROID_LOG_INFO, "SDL", "SDL_Android_Init() finished!");
|
||||
}
|
||||
|
||||
/* Drop file */
|
||||
void Java_org_libsdl_app_SDLActivity_onNativeDropFile(
|
||||
JNIEnv* env, jclass jcls,
|
||||
jstring filename)
|
||||
{
|
||||
const char *path = (*env)->GetStringUTFChars(env, filename, NULL);
|
||||
SDL_SendDropFile(path);
|
||||
(*env)->ReleaseStringUTFChars(env, filename, path);
|
||||
}
|
||||
|
||||
/* Resize */
|
||||
JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize(
|
||||
JNIEnv* env, jclass jcls,
|
||||
|
|
Loading…
Reference in New Issue