Simplify native interface of widget implementations

Makes it easier to overwrite behavior in subclasses. Have a fallback
implementation for ViewGroup.
Save some _GET_LONG_FIELD / _SET_LONG_FIELD calls by directly passing
the native pointers to and from native methods.
This commit is contained in:
Julian Winkler
2023-08-17 12:59:37 +02:00
parent 82744e9e5e
commit 4d90002ec6
33 changed files with 403 additions and 553 deletions

View File

@@ -201,27 +201,27 @@ extern "C" {
#define android_view_ViewGroup_TEXT_DIRECTION_RTL 4L
/*
* Class: android_view_ViewGroup
* Method: addView
* Signature: (Landroid/view/View;ILandroid/view/ViewGroup/LayoutParams;)V
* Method: native_constructor
* Signature: (Landroid/content/Context;Landroid/util/AttributeSet;)J
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_addView
(JNIEnv *, jobject, jobject, jint, jobject);
JNIEXPORT jlong JNICALL Java_android_view_ViewGroup_native_1constructor
(JNIEnv *, jobject, jobject, jobject);
/*
* Class: android_view_ViewGroup
* Method: removeView
* Signature: (Landroid/view/View;)V
* Method: native_addView
* Signature: (JJILandroid/view/ViewGroup/LayoutParams;)V
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeView
(JNIEnv *, jobject, jobject);
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1addView
(JNIEnv *, jobject, jlong, jlong, jint, jobject);
/*
* Class: android_view_ViewGroup
* Method: removeAllViews
* Signature: ()V
* Method: native_removeView
* Signature: (JJ)V
*/
JNIEXPORT void JNICALL Java_android_view_ViewGroup_removeAllViews
(JNIEnv *, jobject);
JNIEXPORT void JNICALL Java_android_view_ViewGroup_native_1removeView
(JNIEnv *, jobject, jlong, jlong);
#ifdef __cplusplus
}