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);
|
mLayout.addView(mSurface);
|
||||||
|
|
||||||
setContentView(mLayout);
|
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
|
// Events
|
||||||
|
@ -397,6 +408,7 @@ public class SDLActivity extends Activity {
|
||||||
public static native void nativeQuit();
|
public static native void nativeQuit();
|
||||||
public static native void nativePause();
|
public static native void nativePause();
|
||||||
public static native void nativeResume();
|
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 void onNativeResize(int x, int y, int format, float rate);
|
||||||
public static native int onNativePadDown(int device_id, int keycode);
|
public static native int onNativePadDown(int device_id, int keycode);
|
||||||
public static native int onNativePadUp(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!");
|
__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 */
|
/* Resize */
|
||||||
JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize(
|
JNIEXPORT void JNICALL Java_org_libsdl_app_SDLActivity_onNativeResize(
|
||||||
JNIEnv* env, jclass jcls,
|
JNIEnv* env, jclass jcls,
|
||||||
|
|
Loading…
Reference in New Issue