diff options
Diffstat (limited to 'src/drivers/Android/Fl_Android_Application.cxx')
| -rw-r--r-- | src/drivers/Android/Fl_Android_Application.cxx | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/drivers/Android/Fl_Android_Application.cxx b/src/drivers/Android/Fl_Android_Application.cxx index 97b692199..fca8d9a46 100644 --- a/src/drivers/Android/Fl_Android_Application.cxx +++ b/src/drivers/Android/Fl_Android_Application.cxx @@ -804,6 +804,43 @@ JNIEXPORT void ANativeActivity_onCreate(ANativeActivity* activity, void* savedSt Fl_Android_Activity::create(activity, savedState, savedStateSize); } + +// ---- Java Stuff ------------------------------------------------------------- + + +Fl_Android_Java::Fl_Android_Java() +{ + jint lResult; + jint lFlags = 0; + + pJavaVM = Fl_Android_Application::get_activity()->vm; + pJNIEnv = Fl_Android_Application::get_activity()->env; + + JavaVMAttachArgs lJavaVMAttachArgs = { + .version = JNI_VERSION_1_6, + .name = "NativeThread", + .group = nullptr + }; + + lResult = pJavaVM->AttachCurrentThread(&pJNIEnv, &lJavaVMAttachArgs); + if (lResult == JNI_ERR) return; + + pNativeActivity = Fl_Android_Application::get_activity()->clazz; + + pNativeActivityClass = env()->GetObjectClass(pNativeActivity); + + pAttached = true; +} + + +Fl_Android_Java::~Fl_Android_Java() +{ + if (is_attached()) { + pJavaVM->DetachCurrentThread(); + } +} + + // // End of "$Id$". // |
