Skip to content

Commit db57080

Browse files
mdvaccafacebook-github-bot
authored andcommitted
Refactor ViewManager codegen to use new ViewManagerInterface (facebook#48549)
Summary: Pull Request resolved: facebook#48549 Refactor ViewManager codegen to use new ViewManagerInterface changelog: [internal] internal Reviewed By: javache Differential Revision: D67957884 fbshipit-source-id: 7abcd453580ab2219770fd1aff780ba2977dfc8a
1 parent 40a0cdb commit db57080

File tree

5 files changed

+113
-59
lines changed

5 files changed

+113
-59
lines changed

packages/react-native-codegen/e2e/__tests__/components/__snapshots__/GeneratePropsJavaInterface-test.js.snap

Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@ package com.facebook.react.viewmanagers;
1616
import android.view.View;
1717
import androidx.annotation.Nullable;
1818
import com.facebook.react.bridge.ReadableArray;
19+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
1920
20-
public interface ArrayPropsNativeComponentViewManagerInterface<T extends View> {
21+
public interface ArrayPropsNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
2122
void setNames(T view, @Nullable ReadableArray value);
2223
void setDisableds(T view, @Nullable ReadableArray value);
2324
void setProgress(T view, @Nullable ReadableArray value);
@@ -50,8 +51,9 @@ package com.facebook.react.viewmanagers;
5051
5152
import android.view.View;
5253
import androidx.annotation.Nullable;
54+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
5355
54-
public interface BooleanPropNativeComponentViewManagerInterface<T extends View> {
56+
public interface BooleanPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
5557
void setDisabled(T view, boolean value);
5658
void setDisabledNullable(T view, @Nullable Boolean value);
5759
}
@@ -74,8 +76,9 @@ package com.facebook.react.viewmanagers;
7476
7577
import android.view.View;
7678
import androidx.annotation.Nullable;
79+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
7780
78-
public interface ColorPropNativeComponentViewManagerInterface<T extends View> {
81+
public interface ColorPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
7982
void setTintColor(T view, @Nullable Integer value);
8083
}
8184
",
@@ -97,9 +100,10 @@ package com.facebook.react.viewmanagers;
97100
98101
import android.view.View;
99102
import androidx.annotation.Nullable;
103+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
100104
import com.facebook.yoga.YogaValue;
101105
102-
public interface DimensionPropNativeComponentViewManagerInterface<T extends View> {
106+
public interface DimensionPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
103107
void setMarginBack(T view, @Nullable YogaValue value);
104108
}
105109
",
@@ -120,8 +124,9 @@ Object {
120124
package com.facebook.react.viewmanagers;
121125
122126
import android.view.View;
127+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
123128
124-
public interface EdgeInsetsPropNativeComponentViewManagerInterface<T extends View> {
129+
public interface EdgeInsetsPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
125130
// No props
126131
}
127132
",
@@ -143,8 +148,9 @@ package com.facebook.react.viewmanagers;
143148
144149
import android.view.View;
145150
import androidx.annotation.Nullable;
151+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
146152
147-
public interface EnumPropNativeComponentViewManagerInterface<T extends View> {
153+
public interface EnumPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
148154
void setAlignment(T view, @Nullable String value);
149155
void setIntervals(T view, @Nullable Integer value);
150156
}
@@ -166,8 +172,9 @@ Object {
166172
package com.facebook.react.viewmanagers;
167173
168174
import android.view.View;
175+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
169176
170-
public interface EventNestedObjectPropsNativeComponentViewManagerInterface<T extends View> {
177+
public interface EventNestedObjectPropsNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
171178
void setDisabled(T view, boolean value);
172179
}
173180
",
@@ -188,8 +195,9 @@ Object {
188195
package com.facebook.react.viewmanagers;
189196
190197
import android.view.View;
198+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
191199
192-
public interface EventPropsNativeComponentViewManagerInterface<T extends View> {
200+
public interface EventPropsNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
193201
void setDisabled(T view, boolean value);
194202
}
195203
",
@@ -211,8 +219,9 @@ package com.facebook.react.viewmanagers;
211219
212220
import android.view.View;
213221
import androidx.annotation.Nullable;
222+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
214223
215-
public interface FloatPropsNativeComponentViewManagerInterface<T extends View> {
224+
public interface FloatPropsNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
216225
void setBlurRadius(T view, float value);
217226
void setBlurRadius2(T view, float value);
218227
void setBlurRadius3(T view, float value);
@@ -241,8 +250,9 @@ package com.facebook.react.viewmanagers;
241250
import android.view.View;
242251
import androidx.annotation.Nullable;
243252
import com.facebook.react.bridge.ReadableMap;
253+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
244254
245-
public interface ImagePropNativeComponentViewManagerInterface<T extends View> {
255+
public interface ImagePropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
246256
void setThumbImage(T view, @Nullable ReadableMap value);
247257
}
248258
",
@@ -263,8 +273,9 @@ Object {
263273
package com.facebook.react.viewmanagers;
264274
265275
import android.view.View;
276+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
266277
267-
public interface IntegerPropNativeComponentViewManagerInterface<T extends View> {
278+
public interface IntegerPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
268279
void setProgress1(T view, int value);
269280
void setProgress2(T view, int value);
270281
void setProgress3(T view, int value);
@@ -288,8 +299,9 @@ package com.facebook.react.viewmanagers;
288299
289300
import android.view.View;
290301
import androidx.annotation.Nullable;
302+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
291303
292-
public interface InterfaceOnlyNativeComponentViewManagerInterface<T extends View> {
304+
public interface InterfaceOnlyNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
293305
void setTitle(T view, @Nullable String value);
294306
}
295307
",
@@ -311,8 +323,9 @@ package com.facebook.react.viewmanagers;
311323
312324
import android.view.View;
313325
import com.facebook.react.bridge.Dynamic;
326+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
314327
315-
public interface MixedPropNativeComponentViewManagerInterface<T extends View> {
328+
public interface MixedPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
316329
void setMixedProp(T view, Dynamic value);
317330
}
318331
",
@@ -335,8 +348,9 @@ package com.facebook.react.viewmanagers;
335348
import android.view.View;
336349
import androidx.annotation.Nullable;
337350
import com.facebook.react.bridge.ReadableMap;
351+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
338352
339-
public interface MultiNativePropNativeComponentViewManagerInterface<T extends View> {
353+
public interface MultiNativePropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
340354
void setThumbImage(T view, @Nullable ReadableMap value);
341355
void setColor(T view, @Nullable Integer value);
342356
void setThumbTintColor(T view, @Nullable Integer value);
@@ -360,8 +374,9 @@ Object {
360374
package com.facebook.react.viewmanagers;
361375
362376
import android.view.View;
377+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
363378
364-
public interface NoPropsNoEventsNativeComponentViewManagerInterface<T extends View> {
379+
public interface NoPropsNoEventsNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
365380
// No props
366381
}
367382
",
@@ -384,8 +399,9 @@ package com.facebook.react.viewmanagers;
384399
import android.view.View;
385400
import androidx.annotation.Nullable;
386401
import com.facebook.react.bridge.ReadableMap;
402+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
387403
388-
public interface ObjectPropsNativeComponentManagerInterface<T extends View> {
404+
public interface ObjectPropsNativeComponentManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
389405
void setObjectProp(T view, @Nullable ReadableMap value);
390406
void setObjectArrayProp(T view, @Nullable ReadableMap value);
391407
void setObjectPrimitiveRequiredProp(T view, @Nullable ReadableMap value);
@@ -410,8 +426,9 @@ package com.facebook.react.viewmanagers;
410426
import android.view.View;
411427
import androidx.annotation.Nullable;
412428
import com.facebook.react.bridge.ReadableMap;
429+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
413430
414-
public interface PointPropNativeComponentViewManagerInterface<T extends View> {
431+
public interface PointPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
415432
void setStartPoint(T view, @Nullable ReadableMap value);
416433
}
417434
",
@@ -433,8 +450,9 @@ package com.facebook.react.viewmanagers;
433450
434451
import android.view.View;
435452
import androidx.annotation.Nullable;
453+
import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;
436454
437-
public interface StringPropNativeComponentViewManagerInterface<T extends View> {
455+
public interface StringPropNativeComponentViewManagerInterface<T extends View> extends ViewManagerWithGeneratedInterface {
438456
void setPlaceholder(T view, @Nullable String value);
439457
void setDefaultValue(T view, @Nullable String value);
440458
}

packages/react-native-codegen/src/generators/components/GeneratePropsJavaInterface.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ package ${packageName};
5252
5353
${imports}
5454
55-
public interface ${className}<T extends ${extendClasses}> {
55+
public interface ${className}<T extends ${extendClasses}> extends ViewManagerWithGeneratedInterface {
5656
${methods}
5757
}
5858
`;

packages/react-native-codegen/src/generators/components/JavaHelpers.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ function getImports(
4343
): Set<string> {
4444
const imports: Set<string> = new Set();
4545

46+
if (type === 'interface') {
47+
imports.add(
48+
'import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;',
49+
);
50+
}
51+
4652
component.extendsProps.forEach(extendProps => {
4753
switch (extendProps.type) {
4854
case 'ReactNativeBuiltInType':

0 commit comments

Comments
 (0)