MCPcopy Create free account
hub / github.com/GarageGames/Torque2D / displayKeyboard

Function displayKeyboard

engine/source/platformAndroid/T2DActivity.cpp:354–438  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

352}
353
354void displayKeyboard(bool pShow) {
355 // Attaches the current thread to the JVM.
356 jint lResult;
357 jint lFlags = 0;
358
359 JavaVM* lJavaVM = platState.engine->app->activity->vm;
360 JNIEnv* lJNIEnv = platState.engine->app->activity->env;
361
362 JavaVMAttachArgs lJavaVMAttachArgs;
363 lJavaVMAttachArgs.version = JNI_VERSION_1_6;
364 lJavaVMAttachArgs.name = "NativeThread";
365 lJavaVMAttachArgs.group = NULL;
366
367 lResult=lJavaVM->AttachCurrentThread(&lJNIEnv, &lJavaVMAttachArgs);
368 if (lResult == JNI_ERR) {
369 return;
370 }
371
372 // Retrieves NativeActivity.
373 jobject lNativeActivity = platState.engine->app->activity->clazz;
374 jclass ClassNativeActivity = lJNIEnv->GetObjectClass(lNativeActivity);
375
376 // Retrieves Context.INPUT_METHOD_SERVICE.
377 jclass ClassContext = lJNIEnv->FindClass("android/content/Context");
378 jfieldID FieldINPUT_METHOD_SERVICE =
379 lJNIEnv->GetStaticFieldID(ClassContext,
380 "INPUT_METHOD_SERVICE", "Ljava/lang/String;");
381 jobject INPUT_METHOD_SERVICE =
382 lJNIEnv->GetStaticObjectField(ClassContext,
383 FieldINPUT_METHOD_SERVICE);
384 //jniCheck(INPUT_METHOD_SERVICE);
385
386 // Runs getSystemService(Context.INPUT_METHOD_SERVICE).
387 jclass ClassInputMethodManager = lJNIEnv->FindClass(
388 "android/view/inputmethod/InputMethodManager");
389 jmethodID MethodGetSystemService = lJNIEnv->GetMethodID(
390 ClassNativeActivity, "getSystemService",
391 "(Ljava/lang/String;)Ljava/lang/Object;");
392 jobject lInputMethodManager = lJNIEnv->CallObjectMethod(
393 lNativeActivity, MethodGetSystemService,
394 INPUT_METHOD_SERVICE);
395
396 // Runs getWindow().getDecorView().
397 jmethodID MethodGetWindow = lJNIEnv->GetMethodID(
398 ClassNativeActivity, "getWindow",
399 "()Landroid/view/Window;");
400 jobject lWindow = lJNIEnv->CallObjectMethod(lNativeActivity,
401 MethodGetWindow);
402 jclass ClassWindow = lJNIEnv->FindClass(
403 "android/view/Window");
404 jmethodID MethodGetDecorView = lJNIEnv->GetMethodID(
405 ClassWindow, "getDecorView", "()Landroid/view/View;");
406 jobject lDecorView = lJNIEnv->CallObjectMethod(lWindow,
407 MethodGetDecorView);
408
409 if (pShow) {
410 // Runs lInputMethodManager.showSoftInput(...).
411 jmethodID MethodShowSoftInput = lJNIEnv->GetMethodID(

Callers 2

engine_handle_inputFunction · 0.85
T2DActivity.cppFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected