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

@@ -12,21 +12,18 @@ public class RelativeLayout extends ViewGroup {
public RelativeLayout(Context context, AttributeSet attrs) {
super(context, attrs);
native_constructor(attrs);
}
public RelativeLayout(Context context) {
super(context);
native_constructor(context);
}
private native void native_constructor(AttributeSet attrs);
private native void native_constructor(Context context);
@Override
public native void addView(View child, int index, ViewGroup.LayoutParams params);
protected native long native_constructor(Context context, AttributeSet attrs);
@Override
protected native void native_addView(long widget, long child, int index, ViewGroup.LayoutParams params);
@Override
protected native void native_removeView(long widget, long child);
public static class LayoutParams extends ViewGroup.LayoutParams {
public LayoutParams(int width, int height) {