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 stubs and fixes for composeUI
This commit is contained in:
@@ -85,6 +85,9 @@ JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1restore(JNIEnv *e
|
||||
|
||||
JNIEXPORT void JNICALL Java_android_graphics_GskCanvas_native_1drawLine(JNIEnv *env, jclass this_class, jlong snapshot_ptr, jfloat x0, jfloat y0, jfloat x1, jfloat y1, jlong paint_ptr)
|
||||
{
|
||||
if (isnan(x0) || isnan(y0) || isnan(x1) || isnan(y1)) {
|
||||
return;
|
||||
}
|
||||
GdkSnapshot *snapshot = GTK_SNAPSHOT(_PTR(snapshot_ptr));
|
||||
sk_paint_t *paint = (sk_paint_t *)_PTR(paint_ptr);
|
||||
GdkRGBA gdk_color;
|
||||
|
||||
@@ -119,6 +119,7 @@ void set_up_handle_cache(JNIEnv *env)
|
||||
if((*env)->ExceptionCheck(env))
|
||||
(*env)->ExceptionDescribe(env);
|
||||
handle_cache.view.onDraw = _METHOD(handle_cache.view.class, "onDraw", "(Landroid/graphics/Canvas;)V");
|
||||
handle_cache.view.dispatchDraw = _METHOD(handle_cache.view.class, "dispatchDraw", "(Landroid/graphics/Canvas;)V");
|
||||
handle_cache.view.draw = _METHOD(handle_cache.view.class, "draw", "(Landroid/graphics/Canvas;)V");
|
||||
handle_cache.view.onMeasure = _METHOD(handle_cache.view.class, "onMeasure", "(II)V");
|
||||
handle_cache.view.onLayout = _METHOD(handle_cache.view.class, "onLayout", "(ZIIII)V");
|
||||
@@ -133,6 +134,7 @@ void set_up_handle_cache(JNIEnv *env)
|
||||
handle_cache.view.getScrollY = _METHOD(handle_cache.view.class, "getScrollY", "()I");
|
||||
handle_cache.view.performClick = _METHOD(handle_cache.view.class, "performClick", "()Z");
|
||||
handle_cache.view.onTouchEvent = _METHOD(handle_cache.view.class, "onTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||
handle_cache.view.dispatchTouchEvent = _METHOD(handle_cache.view.class, "dispatchTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||
handle_cache.view.onInterceptTouchEvent = _METHOD(handle_cache.view.class, "onInterceptTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||
handle_cache.view.layoutInternal = _METHOD(handle_cache.view.class, "layoutInternal", "(II)V");
|
||||
handle_cache.view.measure = _METHOD(handle_cache.view.class, "measure", "(II)V");
|
||||
|
||||
@@ -65,6 +65,7 @@ struct handle_cache {
|
||||
jclass class;
|
||||
jmethodID setLayoutParams;
|
||||
jmethodID onDraw;
|
||||
jmethodID dispatchDraw;
|
||||
jmethodID draw;
|
||||
jmethodID onMeasure;
|
||||
jmethodID onLayout;
|
||||
@@ -79,6 +80,7 @@ struct handle_cache {
|
||||
jmethodID getScrollY;
|
||||
jmethodID performClick;
|
||||
jmethodID onTouchEvent;
|
||||
jmethodID dispatchTouchEvent;
|
||||
jmethodID onInterceptTouchEvent;
|
||||
jmethodID layoutInternal;
|
||||
jmethodID measure;
|
||||
|
||||
@@ -279,8 +279,9 @@ void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject job
|
||||
wrapper->jvm = jvm;
|
||||
wrapper->jobj = _WEAK_REF(jobj);
|
||||
jmethodID on_draw_method = _METHOD(_CLASS(jobj), "onDraw", "(Landroid/graphics/Canvas;)V");
|
||||
jmethodID dispatch_draw_method = _METHOD(_CLASS(jobj), "dispatchDraw", "(Landroid/graphics/Canvas;)V");
|
||||
jmethodID draw_method = _METHOD(_CLASS(jobj), "draw", "(Landroid/graphics/Canvas;)V");
|
||||
if (on_draw_method != handle_cache.view.onDraw || draw_method != handle_cache.view.draw) {
|
||||
if (on_draw_method != handle_cache.view.onDraw || draw_method != handle_cache.view.draw || dispatch_draw_method != handle_cache.view.dispatchDraw) {
|
||||
wrapper->draw_method = draw_method;
|
||||
jclass canvas_class = (*env)->FindClass(env, "android/graphics/GskCanvas");
|
||||
jmethodID canvas_constructor = _METHOD(canvas_class, "<init>", "(J)V");
|
||||
@@ -289,7 +290,8 @@ void wrapper_widget_set_jobject(WrapperWidget *wrapper, JNIEnv *env, jobject job
|
||||
}
|
||||
|
||||
jmethodID ontouchevent_method = _METHOD(_CLASS(jobj), "onTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||
if (ontouchevent_method != handle_cache.view.onTouchEvent) {
|
||||
jmethodID dispatchtouchevent_method = _METHOD(_CLASS(jobj), "dispatchTouchEvent", "(Landroid/view/MotionEvent;)Z");
|
||||
if (ontouchevent_method != handle_cache.view.onTouchEvent || dispatchtouchevent_method != handle_cache.view.dispatchTouchEvent) {
|
||||
_setOnTouchListener(env, jobj, GTK_WIDGET(wrapper));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user