@@ -17,6 +17,67 @@ public extension AndroidViewGroup {
1717
1818open class AndroidViewGroupMarginLayoutParams : Android . View . ViewGroup . LayoutParams {
1919
20+ // Copy constructor.
21+ public convenience init ( source: Android . View . ViewGroup . MarginLayoutParams ) {
22+
23+ var __locals = [ jobject] ( )
24+
25+ var __args = [ jvalue] ( repeating: jvalue ( ) , count: 1 )
26+ __args [ 0 ] = JNIType . toJava ( value: source, locals: & __locals)
27+
28+ let __object = JNIMethod . NewObject (
29+ className: ViewGroupMarginLayoutParamsJNICache . className,
30+ classCache: & ViewGroupMarginLayoutParamsJNICache. jniClass,
31+ methodSig: " (Landroid/view/ViewGroup$MarginLayoutParams;)V " ,
32+ methodCache: & ViewGroupMarginLayoutParamsJNICache. MethodID. newMethod,
33+ args: & __args,
34+ locals: & __locals )
35+
36+ self . init ( javaObject: __object )
37+
38+ JNI . DeleteLocalRef ( __object )
39+ }
40+
41+ public var bottomMargin : Int {
42+ get {
43+ let __value = JNIField . GetIntField ( fieldName: " bottomMargin " ,
44+ fieldType: " I " ,
45+ fieldCache: & ViewGroupMarginLayoutParamsJNICache. FieldID. bottomMargin,
46+ object: javaObject)
47+ return Int ( __value)
48+ }
49+ }
50+
51+ public var leftMargin : Int {
52+ get {
53+ let __value = JNIField . GetIntField ( fieldName: " leftMargin " ,
54+ fieldType: " I " ,
55+ fieldCache: & ViewGroupMarginLayoutParamsJNICache. FieldID. leftMargin,
56+ object: javaObject)
57+ return Int ( __value)
58+ }
59+ }
60+
61+ public var rightMargin : Int {
62+ get {
63+ let __value = JNIField . GetIntField ( fieldName: " rightMargin " ,
64+ fieldType: " I " ,
65+ fieldCache: & ViewGroupMarginLayoutParamsJNICache. FieldID. rightMargin,
66+ object: javaObject)
67+ return Int ( __value)
68+ }
69+ }
70+
71+ public var topMargin : Int {
72+ get {
73+ let __value = JNIField . GetIntField ( fieldName: " topMargin " ,
74+ fieldType: " I " ,
75+ fieldCache: & ViewGroupMarginLayoutParamsJNICache. FieldID. topMargin,
76+ object: javaObject)
77+ return Int ( __value)
78+ }
79+ }
80+
2081 public var marginStart : Int {
2182 get { return getMarginStart ( ) }
2283 set {
@@ -55,7 +116,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
55116 object: javaObject,
56117 methodName: " setMarginStart " ,
57118 methodSig: " (I)V " ,
58- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. setMarginStart,
119+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. setMarginStart,
59120 args: & __args,
60121 locals: & __locals )
61122 }
@@ -71,7 +132,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
71132 object: javaObject,
72133 methodName: " getMarginStart " ,
73134 methodSig: " ()I " ,
74- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. getMarginStart,
135+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. getMarginStart,
75136 args: & __args,
76137 locals: & __locals )
77138
@@ -91,7 +152,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
91152 object: javaObject,
92153 methodName: " setMarginEnd " ,
93154 methodSig: " (I)V " ,
94- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. setMarginEnd,
155+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. setMarginEnd,
95156 args: & __args,
96157 locals: & __locals )
97158 }
@@ -107,7 +168,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
107168 object: javaObject,
108169 methodName: " getMarginEnd " ,
109170 methodSig: " ()I " ,
110- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. getMarginEnd,
171+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. getMarginEnd,
111172 args: & __args,
112173 locals: & __locals )
113174
@@ -127,7 +188,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
127188 object: javaObject,
128189 methodName: " setLayoutDirection " ,
129190 methodSig: " (I)V " ,
130- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. setLayoutDirection,
191+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. setLayoutDirection,
131192 args: & __args,
132193 locals: & __locals )
133194 }
@@ -143,7 +204,7 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
143204 object: javaObject,
144205 methodName: " getLayoutDirection " ,
145206 methodSig: " ()I " ,
146- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. getLayoutDirection,
207+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. getLayoutDirection,
147208 args: & __args,
148209 locals: & __locals )
149210
@@ -161,22 +222,40 @@ open class AndroidViewGroupMarginLayoutParams: Android.View.ViewGroup.LayoutPara
161222 object: javaObject,
162223 methodName: " isMarginRelative " ,
163224 methodSig: " ()Z " ,
164- methodCache: & ViewGroupLayoutParamsJNICache . MethodID. isMarginRelative,
225+ methodCache: & ViewGroupMarginLayoutParamsJNICache . MethodID. isMarginRelative,
165226 args: & __args,
166227 locals: & __locals )
167228
168229 return jboolean ( __return) != jboolean ( JNI_FALSE)
169230 }
170231
171-
232+ internal func setMargins( left: Int , top: Int , right: Int , bottom: Int ) {
233+
234+ var __locals = [ jobject] ( )
235+
236+ var __args = [ jvalue] ( repeating: jvalue ( ) , count: 4 )
237+
238+ __args [ 0 ] = jvalue ( i: jint ( left) )
239+ __args [ 0 ] = jvalue ( i: jint ( top) )
240+ __args [ 0 ] = jvalue ( i: jint ( right) )
241+ __args [ 0 ] = jvalue ( i: jint ( bottom) )
242+
243+ JNIMethod . CallVoidMethod (
244+ object: javaObject,
245+ methodName: " setMarginEnd " ,
246+ methodSig: " (IIII)V " ,
247+ methodCache: & ViewGroupMarginLayoutParamsJNICache. MethodID. setMargins,
248+ args: & __args,
249+ locals: & __locals )
250+ }
172251}
173252
174253// MARK: - Private
175254
176255internal extension AndroidViewGroupMarginLayoutParams {
177256
178257 /// JNI Cache
179- struct ViewGroupLayoutParamsJNICache {
258+ struct ViewGroupMarginLayoutParamsJNICache {
180259
181260 /// JNI Java class signature
182261 static let classSignature = Android . View. className ( [ " ViewGroup$MarginLayoutParams " ] )
@@ -188,11 +267,10 @@ internal extension AndroidViewGroupMarginLayoutParams {
188267 static var jniClass : jclass ?
189268
190269 struct FieldID {
191- static var MATCH_PARENT : jfieldID ?
192- static var WRAP_CONTENT : jfieldID ?
193- static var height : jfieldID ?
194- static var width : jfieldID ?
195-
270+ static var bottomMargin : jfieldID ?
271+ static var leftMargin : jfieldID ?
272+ static var rightMargin : jfieldID ?
273+ static var topMargin : jfieldID ?
196274 }
197275
198276 /// JNI Method ID cache
0 commit comments