Fix 2 bugs with virtual-keyboard input on Android which could both lead to crashes.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/branches/ogl-es@5061 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
b0217b078d
commit
54d361d5c0
|
@ -137,7 +137,8 @@ void setSoftInputVisibility(android_app* app, bool visible)
|
|||
{
|
||||
// Get all the methods we want to access from the JVM classes (could be cached)
|
||||
jmethodID mid_getSystemService = jni->GetMethodID(classNativeActivity, "getSystemService","(Ljava/lang/String;)Ljava/lang/Object;");
|
||||
jmethodID mid_showSoftInput = jni->GetMethodID(classInputMethodManager, "showSoftInput", "(Landroid/view/View;I)Z");
|
||||
jmethodID mid_showSoftInput = jni->GetMethodID(classInputMethodManager, "showSoftInput", "(Landroid/view/View;I)Z");
|
||||
|
||||
jmethodID mid_hideSoftInput = jni->GetMethodID(classInputMethodManager, "hideSoftInputFromWindow", "(Landroid/os/IBinder;I)Z");
|
||||
jmethodID mid_getWindow = jni->GetMethodID(classNativeActivity, "getWindow", "()Landroid/view/Window;");
|
||||
jmethodID mid_getWindowToken = jni->GetMethodID(classView, "getWindowToken", "()Landroid/os/IBinder;");
|
||||
|
@ -157,7 +158,7 @@ void setSoftInputVisibility(android_app* app, bool visible)
|
|||
if ( objDecorView )
|
||||
{
|
||||
int showFlags = 0;
|
||||
jni->CallObjectMethod(objInputMethodManager, mid_showSoftInput, objDecorView, showFlags);
|
||||
jni->CallBooleanMethod(objInputMethodManager, mid_showSoftInput, objDecorView, showFlags);
|
||||
}
|
||||
}
|
||||
else if ( !visible && objInputMethodManager && objWindow )
|
||||
|
|
|
@ -25,7 +25,12 @@ CKeyEventWrapper::CKeyEventWrapper(JNIEnv* jniEnv, int action, int code)
|
|||
{
|
||||
// Find java classes & functions on first call
|
||||
os::Printer::log("CKeyEventWrapper first initialize", ELL_DEBUG);
|
||||
Class_KeyEvent = JniEnv->FindClass("android/view/KeyEvent");
|
||||
jclass localClass = JniEnv->FindClass("android/view/KeyEvent");
|
||||
if (localClass)
|
||||
{
|
||||
Class_KeyEvent = reinterpret_cast<jclass>(JniEnv->NewGlobalRef(localClass));
|
||||
}
|
||||
|
||||
Method_constructor = JniEnv->GetMethodID(Class_KeyEvent, "<init>", "(II)V");
|
||||
Method_getUnicodeChar = JniEnv->GetMethodID(Class_KeyEvent, "getUnicodeChar", "(I)I");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue