MCPcopy Create free account
hub / github.com/SFML/imgui-sfml / openKeyboardIME

Function openKeyboardIME

imgui-SFML.cpp:37–73  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35#include <jni.h>
36
37int openKeyboardIME()
38{
39 ANativeActivity* activity = sf::getNativeActivity();
40 JavaVM* vm = activity->vm;
41 JNIEnv* env = activity->env;
42 JavaVMAttachArgs attachargs;
43 attachargs.version = JNI_VERSION_1_6;
44 attachargs.name = "NativeThread";
45 attachargs.group = nullptr;
46 jint res = vm->AttachCurrentThread(&env, &attachargs);
47 if (res == JNI_ERR)
48 return EXIT_FAILURE;
49
50 jclass natact = env->FindClass("android/app/NativeActivity");
51 jclass context = env->FindClass("android/content/Context");
52
53 jfieldID fid = env->GetStaticFieldID(context, "INPUT_METHOD_SERVICE", "Ljava/lang/String;");
54 jobject svcstr = env->GetStaticObjectField(context, fid);
55
56 jmethodID getss = env->GetMethodID(natact, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;");
57 jobject imm_obj = env->CallObjectMethod(activity->clazz, getss, svcstr);
58
59 jclass imm_cls = env->GetObjectClass(imm_obj);
60 jmethodID toggleSoftInput = env->GetMethodID(imm_cls, "toggleSoftInput", "(II)V");
61
62 env->CallVoidMethod(imm_obj, toggleSoftInput, 2, 0);
63
64 env->DeleteLocalRef(imm_obj);
65 env->DeleteLocalRef(imm_cls);
66 env->DeleteLocalRef(svcstr);
67 env->DeleteLocalRef(context);
68 env->DeleteLocalRef(natact);
69
70 vm->DetachCurrentThread();
71
72 return EXIT_SUCCESS;
73}
74
75int closeKeyboardIME()
76{

Callers 1

UpdateFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected