You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
api-impl{-jni}: make view.onTouchEvent work, misc stuff to make input work for Unity games
onTouchEvent was previously incorrectly handled in GLSurfaceView; move it to View so that it works properly with any of it's descendants. This is done by reusing the existing setOnTouchListener implementation and changing it to use GtkEventControllerLegacy which provides motion events. Technically some of the code is in WrapperWidget.c since every widget calls wrapper_widget_set_jobject and we already have related code there.
This commit is contained in:
@@ -42,10 +42,6 @@ public class GLSurfaceView extends View implements SurfaceHolder.Callback { // T
|
||||
// TODO: make use of this
|
||||
public void onResume() {}
|
||||
|
||||
public boolean onTouchEvent(MotionEvent event) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setEGLConfigChooser(EGLConfigChooser chooser) {
|
||||
config_chooser = chooser;
|
||||
}
|
||||
@@ -74,22 +70,12 @@ public class GLSurfaceView extends View implements SurfaceHolder.Callback { // T
|
||||
return false;
|
||||
}
|
||||
|
||||
private native void native_set_renderer(Renderer renderer, boolean implements_onTouchEvent);
|
||||
private native void native_set_renderer(Renderer renderer);
|
||||
|
||||
public void setRenderer(Renderer renderer) {
|
||||
System.out.println("setRenderer(" + renderer + ") called");
|
||||
|
||||
boolean implements_onTouchEvent;
|
||||
|
||||
try {
|
||||
Class[] cArg = new Class[1];
|
||||
cArg[0] = MotionEvent.class;
|
||||
implements_onTouchEvent = !(this.getClass().getMethod("onTouchEvent", cArg).getDeclaringClass() == View.class);
|
||||
} catch (NoSuchMethodException e) {
|
||||
implements_onTouchEvent = false;
|
||||
}
|
||||
|
||||
native_set_renderer(renderer, implements_onTouchEvent);
|
||||
native_set_renderer(renderer);
|
||||
/* checkRenderThreadState();
|
||||
if (mEGLConfigChooser == null) {
|
||||
mEGLConfigChooser = new SimpleEGLConfigChooser(true);
|
||||
|
||||
Reference in New Issue
Block a user