summaryrefslogtreecommitdiff
path: root/src/drivers/Android/Fl_Android_Application.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/Android/Fl_Android_Application.cxx')
-rw-r--r--src/drivers/Android/Fl_Android_Application.cxx37
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$".
//