From d38afb4a9d711b9308266d7cd6a3a39e713c5e36 Mon Sep 17 00:00:00 2001 From: Oleksandr Melnykov Date: Wed, 4 Sep 2019 07:02:05 -0700 Subject: [PATCH] Use interface instead of abstract class to reference view manager in generated delegate Summary: Our JS codegen assumes that all Android view managers extend `BaseViewManager` which allows generated delegates to set base view props using `BaseViewManagerDelegate`, see and example of the generated delegate for `FbReactTTRCStepRenderFlagManager`: ``` public class TTRCStepRenderFlagManagerDelegate & TTRCStepRenderFlagManagerInterface>{ public TTRCStepRenderFlagManagerDelegate(U viewManager) { super(viewManager); } Override public void setProperty(T view, String propName, Nullable Object value) { switch (propName) { case "traceId": mViewManager.setTraceId(view, value == null ? null : (String) value); break; case "stepName": mViewManager.setStepName(view, value == null ? null : (String) value); break; default: super.setProperty(view, propName, value); } } } ``` The problem is that `FbReactTTRCStepRenderFlagManager` doesn't extend `BaseViewManager`, but `ViewManager`, which means that we cannot use it with the generated delegate. We cannot use `ViewManager` instead of `BaseViewManager` in our JS codegen either, otherwise we will not be able to set base view props. This diff makes it possible for delegates generated by JS to be used by Android view managers that do not extend `BaseViewManager`. By having a `BaseViewManagerInterface` we will be able to introduce a no-op base view manager implementation and wrap our original view manager in it so that we can pass as a constructor parameter to `BaseViewManagerDelegate`. See an example of this approach for `FbReactTTRCStepRenderFlagManager`: ``` public class FbReactTTRCStepRenderFlagManager extends ViewManager implements TTRCStepRenderFlagManagerInterface { private final ViewManagerDelegate mDelegate; public FbReactTTRCStepRenderFlagManager() { mDelegate = new TTRCStepRenderFlagManagerDelegate<>(new ViewManagerWrapper(this)); } ... private static class ViewManagerWrapper extends BaseViewManagerAdapter implements TTRCStepRenderFlagManagerInterface { private final TTRCStepRenderFlagManagerInterface mViewManager; private FbReactTTRCStepRenderFlagManagerAdapter(TTRCStepRenderFlagManagerInterface viewManager) { mViewManager = viewManager; } Override public void setTraceId(FbReactTTRCStepRenderFlag view, Nullable String traceId) { mViewManager.setTraceId(view, traceId); } Override public void setStepName(FbReactTTRCStepRenderFlag view, Nullable String stepName) { mViewManager.setStepName(view, stepName); } } } ``` Reviewed By: mdvacca Differential Revision: D16984121 fbshipit-source-id: ea2761dda68a96ff3ba6ac64153bc4e56e396774 --- .../react/uimanager/BaseViewManager.java | 45 +++++++-- .../uimanager/BaseViewManagerDelegate.java | 3 +- .../uimanager/BaseViewManagerInterface.java | 62 ++++++++++++ .../ActivityIndicatorViewManagerDelegate.java | 4 +- .../AndroidDrawerLayoutManagerDelegate.java | 4 +- .../AndroidProgressBarManagerDelegate.java | 4 +- ...roidSwipeRefreshLayoutManagerDelegate.java | 4 +- .../InputAccessoryViewManagerDelegate.java | 4 +- .../MaskedViewManagerDelegate.java | 4 +- .../ModalHostViewManagerDelegate.java | 4 +- .../ProgressViewManagerDelegate.java | 4 +- .../PullToRefreshViewManagerDelegate.java | 4 +- .../SafeAreaViewManagerDelegate.java | 4 +- .../SegmentedControlManagerDelegate.java | 4 +- .../viewmanagers/SliderManagerDelegate.java | 4 +- .../viewmanagers/SwitchManagerDelegate.java | 4 +- ...nimplementedNativeViewManagerDelegate.java | 4 +- .../components/GeneratePropsJavaDelegate.js | 4 +- .../GeneratePropsJavaDelegate-test.js.snap | 96 +++++++++---------- 19 files changed, 176 insertions(+), 90 deletions(-) create mode 100644 ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java index 4d66d555bf4..4375bba7455 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java @@ -34,7 +34,7 @@ import java.util.Map; * provides support for base view properties such as backgroundColor, opacity, etc. */ public abstract class BaseViewManager - extends ViewManager { + extends ViewManager implements BaseViewManagerInterface { private static final int PERSPECTIVE_ARRAY_INVERTED_CAMERA_DISTANCE_INDEX = 2; private static final float CAMERA_DISTANCE_NORMALIZATION_MULTIPLIER = (float) Math.sqrt(5); @@ -60,6 +60,7 @@ public abstract class BaseViewManager> +public abstract class BaseViewManagerDelegate> implements ViewManagerDelegate { protected final U mViewManager; diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java new file mode 100644 index 00000000000..87325f6a79f --- /dev/null +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java @@ -0,0 +1,62 @@ +package com.facebook.react.uimanager; + +import android.view.View; +import androidx.annotation.Nullable; +import com.facebook.react.bridge.ReadableArray; +import com.facebook.react.bridge.ReadableMap; + +/** + * This is an interface that should be implemented by view managers supporting the base view + * properties such as backgroundColor, opacity, etc. + */ +public interface BaseViewManagerInterface { + void setAccessibilityActions(T view, @Nullable ReadableArray accessibilityActions); + + void setAccessibilityHint(T view, @Nullable String accessibilityHint); + + void setAccessibilityLabel(T view, @Nullable String accessibilityLabel); + + void setAccessibilityLiveRegion(T view, @Nullable String liveRegion); + + void setAccessibilityRole(T view, @Nullable String accessibilityRole); + + void setViewState(T view, @Nullable ReadableMap accessibilityState); + + void setBackgroundColor(T view, int backgroundColor); + + void setBorderRadius(T view, float borderRadius); + + void setBorderBottomLeftRadius(T view, float borderRadius); + + void setBorderBottomRightRadius(T view, float borderRadius); + + void setBorderTopLeftRadius(T view, float borderRadius); + + void setBorderTopRightRadius(T view, float borderRadius); + + void setElevation(T view, float elevation); + + void setImportantForAccessibility(T view, @Nullable String importantForAccessibility); + + void setNativeId(T view, @Nullable String nativeId); + + void setOpacity(T view, float opacity); + + void setRenderToHardwareTexture(T view, boolean useHWTexture); + + void setRotation(T view, float rotation); + + void setScaleX(T view, float scaleX); + + void setScaleY(T view, float scaleY); + + void setTestId(T view, String testId); + + void setTransform(T view, @Nullable ReadableArray matrix); + + void setTranslateX(T view, float translateX); + + void setTranslateY(T view, float translateY); + + void setZIndex(T view, float zIndex); +} diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerDelegate.java index 20acd61d723..62514d5988f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ActivityIndicatorViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ActivityIndicatorViewManagerDelegate & ActivityIndicatorViewManagerInterface> extends BaseViewManagerDelegate { +public class ActivityIndicatorViewManagerDelegate & ActivityIndicatorViewManagerInterface> extends BaseViewManagerDelegate { public ActivityIndicatorViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerDelegate.java index 9bd531194b2..e269db6e877 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidDrawerLayoutManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class AndroidDrawerLayoutManagerDelegate & AndroidDrawerLayoutManagerInterface> extends BaseViewManagerDelegate { +public class AndroidDrawerLayoutManagerDelegate & AndroidDrawerLayoutManagerInterface> extends BaseViewManagerDelegate { public AndroidDrawerLayoutManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate.java index f47432f721b..f0097b2c11d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidProgressBarManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class AndroidProgressBarManagerDelegate & AndroidProgressBarManagerInterface> extends BaseViewManagerDelegate { +public class AndroidProgressBarManagerDelegate & AndroidProgressBarManagerInterface> extends BaseViewManagerDelegate { public AndroidProgressBarManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerDelegate.java index 192fa053b7b..8aedfee20aa 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/AndroidSwipeRefreshLayoutManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class AndroidSwipeRefreshLayoutManagerDelegate & AndroidSwipeRefreshLayoutManagerInterface> extends BaseViewManagerDelegate { +public class AndroidSwipeRefreshLayoutManagerDelegate & AndroidSwipeRefreshLayoutManagerInterface> extends BaseViewManagerDelegate { public AndroidSwipeRefreshLayoutManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java index 93484383eca..85c178abb64 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/InputAccessoryViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class InputAccessoryViewManagerDelegate & InputAccessoryViewManagerInterface> extends BaseViewManagerDelegate { +public class InputAccessoryViewManagerDelegate & InputAccessoryViewManagerInterface> extends BaseViewManagerDelegate { public InputAccessoryViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerDelegate.java index 1b849a5bbdf..315e5cd181a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/MaskedViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class MaskedViewManagerDelegate & MaskedViewManagerInterface> extends BaseViewManagerDelegate { +public class MaskedViewManagerDelegate & MaskedViewManagerInterface> extends BaseViewManagerDelegate { public MaskedViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerDelegate.java index 07ab506ac18..f528ad94e54 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ModalHostViewManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ModalHostViewManagerDelegate & ModalHostViewManagerInterface> extends BaseViewManagerDelegate { +public class ModalHostViewManagerDelegate & ModalHostViewManagerInterface> extends BaseViewManagerDelegate { public ModalHostViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerDelegate.java index 4e8b33449e0..b4524bf7cd5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/ProgressViewManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ProgressViewManagerDelegate & ProgressViewManagerInterface> extends BaseViewManagerDelegate { +public class ProgressViewManagerDelegate & ProgressViewManagerInterface> extends BaseViewManagerDelegate { public ProgressViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java index 9ff2d6aacfe..77fb5e2a002 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/PullToRefreshViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class PullToRefreshViewManagerDelegate & PullToRefreshViewManagerInterface> extends BaseViewManagerDelegate { +public class PullToRefreshViewManagerDelegate & PullToRefreshViewManagerInterface> extends BaseViewManagerDelegate { public PullToRefreshViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerDelegate.java index 91b24353e17..fdf56b28382 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SafeAreaViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class SafeAreaViewManagerDelegate & SafeAreaViewManagerInterface> extends BaseViewManagerDelegate { +public class SafeAreaViewManagerDelegate & SafeAreaViewManagerInterface> extends BaseViewManagerDelegate { public SafeAreaViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerDelegate.java index 2618c63e218..e3c7505a86b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SegmentedControlManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class SegmentedControlManagerDelegate & SegmentedControlManagerInterface> extends BaseViewManagerDelegate { +public class SegmentedControlManagerDelegate & SegmentedControlManagerInterface> extends BaseViewManagerDelegate { public SegmentedControlManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerDelegate.java index 0bfdc3ebde0..2dda0304e25 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SliderManagerDelegate.java @@ -12,11 +12,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class SliderManagerDelegate & SliderManagerInterface> extends BaseViewManagerDelegate { +public class SliderManagerDelegate & SliderManagerInterface> extends BaseViewManagerDelegate { public SliderManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java index 6cf56c90d96..bee0b8c54f2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/SwitchManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class SwitchManagerDelegate & SwitchManagerInterface> extends BaseViewManagerDelegate { +public class SwitchManagerDelegate & SwitchManagerInterface> extends BaseViewManagerDelegate { public SwitchManagerDelegate(U viewManager) { super(viewManager); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerDelegate.java index dff2539afbf..f90b2c3b25f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/viewmanagers/UnimplementedNativeViewManagerDelegate.java @@ -11,11 +11,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class UnimplementedNativeViewManagerDelegate & UnimplementedNativeViewManagerInterface> extends BaseViewManagerDelegate { +public class UnimplementedNativeViewManagerDelegate & UnimplementedNativeViewManagerInterface> extends BaseViewManagerDelegate { public UnimplementedNativeViewManagerDelegate(U viewManager) { super(viewManager); } diff --git a/packages/react-native-codegen/src/generators/components/GeneratePropsJavaDelegate.js b/packages/react-native-codegen/src/generators/components/GeneratePropsJavaDelegate.js index 6a11f144354..32a5fda65b1 100644 --- a/packages/react-native-codegen/src/generators/components/GeneratePropsJavaDelegate.js +++ b/packages/react-native-codegen/src/generators/components/GeneratePropsJavaDelegate.js @@ -39,7 +39,7 @@ package com.facebook.react.viewmanagers; ::_IMPORTS_:: -public class ::_CLASSNAME_:: & ::_INTERFACE_CLASSNAME_::> extends BaseViewManagerDelegate { +public class ::_CLASSNAME_:: & ::_INTERFACE_CLASSNAME_::> extends BaseViewManagerDelegate { public ::_CLASSNAME_::(U viewManager) { super(viewManager); } @@ -225,8 +225,8 @@ function getDelegateImports(component) { imports.add('import com.facebook.react.bridge.ReadableArray;'); } imports.add('import androidx.annotation.Nullable;'); - imports.add('import com.facebook.react.uimanager.BaseViewManager;'); imports.add('import com.facebook.react.uimanager.BaseViewManagerDelegate;'); + imports.add('import com.facebook.react.uimanager.BaseViewManagerInterface;'); imports.add('import com.facebook.react.uimanager.LayoutShadowNode;'); return imports; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaDelegate-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaDelegate-test.js.snap index 2dc6baa450c..69a28bb9bf0 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaDelegate-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GeneratePropsJavaDelegate-test.js.snap @@ -16,11 +16,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ArrayPropsNativeComponentManagerDelegate & ArrayPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class ArrayPropsNativeComponentManagerDelegate & ArrayPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { public ArrayPropsNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -82,11 +82,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ArrayPropsNativeComponentManagerDelegate & ArrayPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class ArrayPropsNativeComponentManagerDelegate & ArrayPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { public ArrayPropsNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -120,11 +120,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class BooleanPropNativeComponentManagerDelegate & BooleanPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class BooleanPropNativeComponentManagerDelegate & BooleanPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public BooleanPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -158,11 +158,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ColorPropNativeComponentManagerDelegate & ColorPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class ColorPropNativeComponentManagerDelegate & ColorPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public ColorPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -197,11 +197,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class CommandNativeComponentManagerDelegate & CommandNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class CommandNativeComponentManagerDelegate & CommandNativeComponentManagerInterface> extends BaseViewManagerDelegate { public CommandNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -241,11 +241,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class CommandNativeComponentManagerDelegate & CommandNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class CommandNativeComponentManagerDelegate & CommandNativeComponentManagerInterface> extends BaseViewManagerDelegate { public CommandNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -287,11 +287,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class DoublePropNativeComponentManagerDelegate & DoublePropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class DoublePropNativeComponentManagerDelegate & DoublePropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public DoublePropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -340,11 +340,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class EnumPropsNativeComponentManagerDelegate & EnumPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class EnumPropsNativeComponentManagerDelegate & EnumPropsNativeComponentManagerInterface> extends BaseViewManagerDelegate { public EnumPropsNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -378,11 +378,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class EventsNestedObjectNativeComponentManagerDelegate & EventsNestedObjectNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class EventsNestedObjectNativeComponentManagerDelegate & EventsNestedObjectNativeComponentManagerInterface> extends BaseViewManagerDelegate { public EventsNestedObjectNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -416,11 +416,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class EventsNativeComponentManagerDelegate & EventsNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class EventsNativeComponentManagerDelegate & EventsNativeComponentManagerInterface> extends BaseViewManagerDelegate { public EventsNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -454,11 +454,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class InterfaceOnlyComponentManagerDelegate & InterfaceOnlyComponentManagerInterface> extends BaseViewManagerDelegate { +public class InterfaceOnlyComponentManagerDelegate & InterfaceOnlyComponentManagerInterface> extends BaseViewManagerDelegate { public InterfaceOnlyComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -486,11 +486,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class FloatPropNativeComponentManagerDelegate & FloatPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class FloatPropNativeComponentManagerDelegate & FloatPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public FloatPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -540,11 +540,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ImagePropNativeComponentManagerDelegate & ImagePropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class ImagePropNativeComponentManagerDelegate & ImagePropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public ImagePropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -578,11 +578,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class IntegerPropNativeComponentManagerDelegate & IntegerPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class IntegerPropNativeComponentManagerDelegate & IntegerPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public IntegerPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -622,11 +622,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class InterfaceOnlyComponentManagerDelegate & InterfaceOnlyComponentManagerInterface> extends BaseViewManagerDelegate { +public class InterfaceOnlyComponentManagerDelegate & InterfaceOnlyComponentManagerInterface> extends BaseViewManagerDelegate { public InterfaceOnlyComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -661,11 +661,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ImageColorPropNativeComponentManagerDelegate & ImageColorPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class ImageColorPropNativeComponentManagerDelegate & ImageColorPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public ImageColorPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -708,11 +708,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class NoPropsNoEventsComponentManagerDelegate & NoPropsNoEventsComponentManagerInterface> extends BaseViewManagerDelegate { +public class NoPropsNoEventsComponentManagerDelegate & NoPropsNoEventsComponentManagerInterface> extends BaseViewManagerDelegate { public NoPropsNoEventsComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -741,11 +741,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class ObjectPropsManagerDelegate & ObjectPropsManagerInterface> extends BaseViewManagerDelegate { +public class ObjectPropsManagerDelegate & ObjectPropsManagerInterface> extends BaseViewManagerDelegate { public ObjectPropsManagerDelegate(U viewManager) { super(viewManager); } @@ -780,11 +780,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class PointPropNativeComponentManagerDelegate & PointPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class PointPropNativeComponentManagerDelegate & PointPropNativeComponentManagerInterface> extends BaseViewManagerDelegate { public PointPropNativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -818,11 +818,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class StringPropComponentManagerDelegate & StringPropComponentManagerInterface> extends BaseViewManagerDelegate { +public class StringPropComponentManagerDelegate & StringPropComponentManagerInterface> extends BaseViewManagerDelegate { public StringPropComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -859,11 +859,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class MultiFile1NativeComponentManagerDelegate & MultiFile1NativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class MultiFile1NativeComponentManagerDelegate & MultiFile1NativeComponentManagerInterface> extends BaseViewManagerDelegate { public MultiFile1NativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -892,11 +892,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class MultiFile2NativeComponentManagerDelegate & MultiFile2NativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class MultiFile2NativeComponentManagerDelegate & MultiFile2NativeComponentManagerInterface> extends BaseViewManagerDelegate { public MultiFile2NativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -930,11 +930,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class MultiComponent1NativeComponentManagerDelegate & MultiComponent1NativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class MultiComponent1NativeComponentManagerDelegate & MultiComponent1NativeComponentManagerInterface> extends BaseViewManagerDelegate { public MultiComponent1NativeComponentManagerDelegate(U viewManager) { super(viewManager); } @@ -963,11 +963,11 @@ package com.facebook.react.viewmanagers; import android.view.View; import androidx.annotation.Nullable; -import com.facebook.react.uimanager.BaseViewManager; import com.facebook.react.uimanager.BaseViewManagerDelegate; +import com.facebook.react.uimanager.BaseViewManagerInterface; import com.facebook.react.uimanager.LayoutShadowNode; -public class MultiComponent2NativeComponentManagerDelegate & MultiComponent2NativeComponentManagerInterface> extends BaseViewManagerDelegate { +public class MultiComponent2NativeComponentManagerDelegate & MultiComponent2NativeComponentManagerInterface> extends BaseViewManagerDelegate { public MultiComponent2NativeComponentManagerDelegate(U viewManager) { super(viewManager); }