react-native-screens 3.11.1 → 3.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +4 -0
  2. package/RNScreens.podspec +36 -6
  3. package/android/build.gradle +73 -1
  4. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
  5. package/android/src/fabric/java/com/swmansion/rnscreens/RNScreensComponentsRegistry.java +28 -0
  6. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +11 -2
  7. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +24 -10
  8. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +83 -18
  9. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +17 -5
  10. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +14 -1
  11. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +33 -16
  12. package/android/src/main/jni/Android.mk +45 -0
  13. package/android/src/main/jni/OnLoad.cpp +9 -0
  14. package/android/src/main/jni/RNScreensComponentsRegistry.cpp +66 -0
  15. package/android/src/main/jni/RNScreensComponentsRegistry.h +34 -0
  16. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +71 -0
  17. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +30 -0
  18. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +104 -0
  19. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +41 -0
  20. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
  21. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
  22. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
  23. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
  24. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +16 -0
  25. package/common/cpp/Android.mk +38 -0
  26. package/common/cpp/rnscreens/RNSScreenComponentDescriptor.h +41 -0
  27. package/common/cpp/rnscreens/RNSScreenShadowNode.cpp +9 -0
  28. package/common/cpp/rnscreens/RNSScreenShadowNode.h +29 -0
  29. package/common/cpp/rnscreens/RNSScreenState.cpp +14 -0
  30. package/common/cpp/rnscreens/RNSScreenState.h +46 -0
  31. package/ios/RNSScreenComponentView.h +23 -0
  32. package/ios/RNSScreenComponentView.mm +159 -0
  33. package/ios/RNSScreenController.h +10 -0
  34. package/ios/RNSScreenController.mm +79 -0
  35. package/ios/RNSScreenStackComponentView.h +15 -0
  36. package/ios/RNSScreenStackComponentView.mm +295 -0
  37. package/ios/RNSScreenStackHeaderConfigComponentView.h +42 -0
  38. package/ios/RNSScreenStackHeaderConfigComponentView.mm +662 -0
  39. package/ios/RNSScreenStackHeaderSubviewComponentView.h +14 -0
  40. package/ios/RNSScreenStackHeaderSubviewComponentView.mm +77 -0
  41. package/ios/utils/RNSUIBarButtonItem.h +5 -0
  42. package/ios/utils/RNSUIBarButtonItem.mm +22 -0
  43. package/lib/commonjs/fabric/Screen.js +27 -0
  44. package/lib/commonjs/fabric/Screen.js.map +1 -0
  45. package/lib/commonjs/fabric/ScreenNativeComponent.js +23 -0
  46. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
  47. package/lib/commonjs/fabric/ScreenStack.js +27 -0
  48. package/lib/commonjs/fabric/ScreenStack.js.map +1 -0
  49. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +27 -0
  50. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  51. package/lib/commonjs/fabric/ScreenStackHeaderSubview.js +34 -0
  52. package/lib/commonjs/fabric/ScreenStackHeaderSubview.js.map +1 -0
  53. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +27 -0
  54. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  55. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +21 -0
  56. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
  57. package/lib/commonjs/fabric/index.js +40 -0
  58. package/lib/commonjs/fabric/index.js.map +1 -0
  59. package/lib/commonjs/index.native.js +32 -15
  60. package/lib/commonjs/index.native.js.map +1 -1
  61. package/lib/module/fabric/Screen.js +11 -0
  62. package/lib/module/fabric/Screen.js.map +1 -0
  63. package/lib/module/fabric/ScreenNativeComponent.js +11 -0
  64. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
  65. package/lib/module/fabric/ScreenStack.js +12 -0
  66. package/lib/module/fabric/ScreenStack.js.map +1 -0
  67. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -0
  68. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  69. package/lib/module/fabric/ScreenStackHeaderSubview.js +21 -0
  70. package/lib/module/fabric/ScreenStackHeaderSubview.js.map +1 -0
  71. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +10 -0
  72. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  73. package/lib/module/fabric/ScreenStackNativeComponent.js +9 -0
  74. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
  75. package/lib/module/fabric/index.js +6 -0
  76. package/lib/module/fabric/index.js.map +1 -0
  77. package/lib/module/index.native.js +32 -15
  78. package/lib/module/index.native.js.map +1 -1
  79. package/package.json +17 -3
  80. package/src/fabric/Screen.js +12 -0
  81. package/src/fabric/ScreenNativeComponent.js +64 -0
  82. package/src/fabric/ScreenStack.js +8 -0
  83. package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +54 -0
  84. package/src/fabric/ScreenStackHeaderSubview.js +20 -0
  85. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +31 -0
  86. package/src/fabric/ScreenStackNativeComponent.js +19 -0
  87. package/src/fabric/index.js +11 -0
  88. package/src/index.native.tsx +35 -14
@@ -1,11 +1,18 @@
1
1
  package com.swmansion.rnscreens
2
2
 
3
+ import androidx.annotation.NonNull
4
+ import androidx.annotation.Nullable
3
5
  import com.facebook.react.bridge.JSApplicationIllegalArgumentException
4
6
  import com.facebook.react.common.MapBuilder
5
7
  import com.facebook.react.module.annotations.ReactModule
8
+ import com.facebook.react.uimanager.ReactStylesDiffMap
9
+ import com.facebook.react.uimanager.StateWrapper
6
10
  import com.facebook.react.uimanager.ThemedReactContext
7
11
  import com.facebook.react.uimanager.ViewGroupManager
12
+ import com.facebook.react.uimanager.ViewManagerDelegate
8
13
  import com.facebook.react.uimanager.annotations.ReactProp
14
+ import com.facebook.react.viewmanagers.RNSScreenManagerDelegate
15
+ import com.facebook.react.viewmanagers.RNSScreenManagerInterface
9
16
  import com.swmansion.rnscreens.events.HeaderBackButtonClickedEvent
10
17
  import com.swmansion.rnscreens.events.ScreenAppearEvent
11
18
  import com.swmansion.rnscreens.events.ScreenDisappearEvent
@@ -16,7 +23,13 @@ import com.swmansion.rnscreens.events.ScreenWillDisappearEvent
16
23
  import com.swmansion.rnscreens.events.StackFinishTransitioningEvent
17
24
 
18
25
  @ReactModule(name = ScreenViewManager.REACT_CLASS)
19
- class ScreenViewManager : ViewGroupManager<Screen>() {
26
+ class ScreenViewManager : ViewGroupManager<Screen>(), RNSScreenManagerInterface<Screen> {
27
+ private val mDelegate: ViewManagerDelegate<Screen>
28
+
29
+ init {
30
+ mDelegate = RNSScreenManagerDelegate<Screen, ScreenViewManager>(this)
31
+ }
32
+
20
33
  override fun getName(): String {
21
34
  return REACT_CLASS
22
35
  }
@@ -26,8 +39,8 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
26
39
  }
27
40
 
28
41
  @ReactProp(name = "activityState")
29
- fun setActivityState(view: Screen, activityState: Int?) {
30
- if (activityState == null) {
42
+ override fun setActivityState(view: Screen, activityState: Int) {
43
+ if (activityState == -1) {
31
44
  // Null will be provided when activityState is set as an animated value and we change
32
45
  // it from JS to be a plain value (non animated).
33
46
  // In case when null is received, we want to ignore such value and not make
@@ -42,7 +55,7 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
42
55
  }
43
56
 
44
57
  @ReactProp(name = "stackPresentation")
45
- fun setStackPresentation(view: Screen, presentation: String) {
58
+ override fun setStackPresentation(view: Screen, presentation: String?) {
46
59
  view.stackPresentation = when (presentation) {
47
60
  "push" -> Screen.StackPresentation.PUSH
48
61
  "modal", "containedModal", "fullScreenModal", "formSheet" ->
@@ -54,7 +67,7 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
54
67
  }
55
68
 
56
69
  @ReactProp(name = "stackAnimation")
57
- fun setStackAnimation(view: Screen, animation: String?) {
70
+ override fun setStackAnimation(view: Screen, animation: String?) {
58
71
  view.stackAnimation = when (animation) {
59
72
  null, "default", "flip", "simple_push" -> Screen.StackAnimation.DEFAULT
60
73
  "none" -> Screen.StackAnimation.NONE
@@ -68,12 +81,12 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
68
81
  }
69
82
 
70
83
  @ReactProp(name = "gestureEnabled", defaultBoolean = true)
71
- fun setGestureEnabled(view: Screen, gestureEnabled: Boolean) {
84
+ override fun setGestureEnabled(view: Screen, gestureEnabled: Boolean) {
72
85
  view.isGestureEnabled = gestureEnabled
73
86
  }
74
87
 
75
88
  @ReactProp(name = "replaceAnimation")
76
- fun setReplaceAnimation(view: Screen, animation: String?) {
89
+ override fun setReplaceAnimation(view: Screen, animation: String?) {
77
90
  view.replaceAnimation = when (animation) {
78
91
  null, "pop" -> Screen.ReplaceAnimation.POP
79
92
  "push" -> Screen.ReplaceAnimation.PUSH
@@ -82,48 +95,48 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
82
95
  }
83
96
 
84
97
  @ReactProp(name = "screenOrientation")
85
- fun setScreenOrientation(view: Screen, screenOrientation: String?) {
98
+ override fun setScreenOrientation(view: Screen, screenOrientation: String?) {
86
99
  view.setScreenOrientation(screenOrientation)
87
100
  }
88
101
 
89
102
  @ReactProp(name = "statusBarAnimation")
90
- fun setStatusBarAnimation(view: Screen, statusBarAnimation: String?) {
103
+ override fun setStatusBarAnimation(view: Screen, statusBarAnimation: String?) {
91
104
  val animated = statusBarAnimation != null && "none" != statusBarAnimation
92
105
  view.isStatusBarAnimated = animated
93
106
  }
94
107
 
95
108
  @ReactProp(name = "statusBarColor")
96
- fun setStatusBarColor(view: Screen, statusBarColor: Int?) {
109
+ override fun setStatusBarColor(view: Screen, statusBarColor: Int?) {
97
110
  view.statusBarColor = statusBarColor
98
111
  }
99
112
 
100
113
  @ReactProp(name = "statusBarStyle")
101
- fun setStatusBarStyle(view: Screen, statusBarStyle: String?) {
114
+ override fun setStatusBarStyle(view: Screen, statusBarStyle: String?) {
102
115
  view.statusBarStyle = statusBarStyle
103
116
  }
104
117
 
105
118
  @ReactProp(name = "statusBarTranslucent")
106
- fun setStatusBarTranslucent(view: Screen, statusBarTranslucent: Boolean?) {
119
+ override fun setStatusBarTranslucent(view: Screen, statusBarTranslucent: Boolean) {
107
120
  view.isStatusBarTranslucent = statusBarTranslucent
108
121
  }
109
122
 
110
123
  @ReactProp(name = "statusBarHidden")
111
- fun setStatusBarHidden(view: Screen, statusBarHidden: Boolean?) {
124
+ override fun setStatusBarHidden(view: Screen, statusBarHidden: Boolean) {
112
125
  view.isStatusBarHidden = statusBarHidden
113
126
  }
114
127
 
115
128
  @ReactProp(name = "navigationBarColor", customType = "Color")
116
- fun setNavigationBarColor(view: Screen, navigationBarColor: Int) {
129
+ override fun setNavigationBarColor(view: Screen, navigationBarColor: Int?) {
117
130
  view.navigationBarColor = navigationBarColor
118
131
  }
119
132
 
120
133
  @ReactProp(name = "navigationBarHidden")
121
- fun setNavigationBarHidden(view: Screen, navigationBarHidden: Boolean?) {
134
+ override fun setNavigationBarHidden(view: Screen, navigationBarHidden: Boolean) {
122
135
  view.isNavigationBarHidden = navigationBarHidden
123
136
  }
124
137
 
125
138
  @ReactProp(name = "nativeBackButtonDismissalEnabled")
126
- fun setNativeBackButtonDismissalEnabled(
139
+ override fun setNativeBackButtonDismissalEnabled(
127
140
  view: Screen,
128
141
  nativeBackButtonDismissalEnabled: Boolean
129
142
  ) {
@@ -152,6 +165,10 @@ class ScreenViewManager : ViewGroupManager<Screen>() {
152
165
  return map
153
166
  }
154
167
 
168
+ protected override fun getDelegate(): ViewManagerDelegate<Screen> {
169
+ return mDelegate
170
+ }
171
+
155
172
  companion object {
156
173
  const val REACT_CLASS = "RNSScreen"
157
174
  }
@@ -0,0 +1,45 @@
1
+ SCREENS_MAIN_THIS_DIR := $(call my-dir)
2
+
3
+ include $(REACT_ANDROID_DIR)/Android-prebuilt.mk
4
+
5
+ include $(SCREENS_MAIN_THIS_DIR)/../../../build/generated/source/codegen/jni/Android.mk
6
+ include $(SCREENS_MAIN_THIS_DIR)/../../../../common/cpp/Android.mk
7
+
8
+ include $(CLEAR_VARS)
9
+
10
+ LOCAL_PATH := $(SCREENS_MAIN_THIS_DIR)
11
+ LOCAL_MODULE := rnscreens_modules
12
+
13
+ LOCAL_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni
14
+ LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/*.cpp) $(wildcard $(GENERATED_SRC_DIR)/codegen/jni/*.cpp)
15
+ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni
16
+
17
+ # Please note as one of the library listed is libreact_codegen_samplelibrary
18
+ # This name will be generated as libreact_codegen_<library-name>
19
+ # where <library-name> is the one you specified in the Gradle configuration
20
+ LOCAL_SHARED_LIBRARIES := libjsi \
21
+ libfbjni \
22
+ libglog \
23
+ libfolly_json \
24
+ libyoga \
25
+ libreact_nativemodule_core \
26
+ libturbomodulejsijni \
27
+ librrc_view \
28
+ libreact_render_core \
29
+ libreact_render_graphics \
30
+ libfabricjni \
31
+ libfolly_futures \
32
+ libreact_debug \
33
+ libreact_render_componentregistry \
34
+ libreact_render_debug \
35
+ libruntimeexecutor \
36
+ libreact_render_mapbuffer \
37
+ libreact_codegen_rncore \
38
+ libreact_codegen_rnscreens \
39
+ librnscreens_common
40
+
41
+ LOCAL_CFLAGS := \
42
+ -DLOG_TAG=\"ReactNative\"
43
+ LOCAL_CFLAGS += -fexceptions -frtti -std=c++17 -Wall
44
+
45
+ include $(BUILD_SHARED_LIBRARY)
@@ -0,0 +1,9 @@
1
+ #include <fbjni/fbjni.h>
2
+
3
+ #include "RNScreensComponentsRegistry.h"
4
+
5
+ JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *) {
6
+ return facebook::jni::initialize(vm, [] {
7
+ facebook::react::RNScreensComponentsRegistry::registerNatives();
8
+ });
9
+ }
@@ -0,0 +1,66 @@
1
+ #include "RNScreensComponentsRegistry.h"
2
+
3
+ #include <CoreComponentsRegistry.h>
4
+ #include <fbjni/fbjni.h>
5
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
6
+ #include <react/renderer/components/rnscreens/ComponentDescriptors.h>
7
+ #include <react/renderer/mapbuffer/MapBuffer.h>
8
+ #include <react/renderer/mapbuffer/MapBufferBuilder.h>
9
+ #include <rnscreens/RNSScreenComponentDescriptor.h>
10
+
11
+ namespace facebook {
12
+ namespace react {
13
+
14
+ RNScreensComponentsRegistry::RNScreensComponentsRegistry(
15
+ ComponentFactory *delegate)
16
+ : delegate_(delegate) {}
17
+
18
+ std::shared_ptr<ComponentDescriptorProviderRegistry const>
19
+ RNScreensComponentsRegistry::sharedProviderRegistry() {
20
+ auto providerRegistry = CoreComponentsRegistry::sharedProviderRegistry();
21
+
22
+ // Screens
23
+ providerRegistry->add(concreteComponentDescriptorProvider<RNSScreenComponentDescriptor>());
24
+ providerRegistry->add(concreteComponentDescriptorProvider<RNSScreenStackComponentDescriptor>());
25
+ providerRegistry->add(concreteComponentDescriptorProvider<RNSScreenStackHeaderConfigComponentDescriptor>());
26
+ providerRegistry->add(concreteComponentDescriptorProvider<RNSScreenStackHeaderSubviewComponentDescriptor>());
27
+
28
+ return providerRegistry;
29
+ }
30
+
31
+ jni::local_ref<RNScreensComponentsRegistry::jhybriddata>
32
+ RNScreensComponentsRegistry::initHybrid(
33
+ jni::alias_ref<jclass>,
34
+ ComponentFactory *delegate) {
35
+ auto instance = makeCxxInstance(delegate);
36
+
37
+ auto buildRegistryFunction =
38
+ [](EventDispatcher::Weak const &eventDispatcher,
39
+ ContextContainer::Shared const &contextContainer)
40
+ -> ComponentDescriptorRegistry::Shared {
41
+ auto registry = RNScreensComponentsRegistry::sharedProviderRegistry()
42
+ ->createComponentDescriptorRegistry(
43
+ {eventDispatcher, contextContainer});
44
+
45
+ return registry;
46
+ };
47
+
48
+ delegate->buildRegistryFunction = buildRegistryFunction;
49
+ return instance;
50
+ }
51
+
52
+ void RNScreensComponentsRegistry::registerNatives() {
53
+ registerHybrid({
54
+ makeNativeMethod("initHybrid", RNScreensComponentsRegistry::initHybrid),
55
+ });
56
+ // This is a temporary solution that allows components exported by the screens
57
+ // library to be added to the main component registry. This code is triggered
58
+ // when c++ screens library is initialized and is needed because RN's autolinking
59
+ // does not currently support Fabric components. As a consequence, users would need
60
+ // to manually put library initialization calls in their ReactNativeHost implementation
61
+ // which is undesirable.
62
+ sharedProviderRegistry();
63
+ }
64
+
65
+ } // namespace react
66
+ } // namespace facebook
@@ -0,0 +1,34 @@
1
+ #pragma once
2
+
3
+ #include <ComponentFactory.h>
4
+ #include <fbjni/fbjni.h>
5
+ #include <react/renderer/componentregistry/ComponentDescriptorProviderRegistry.h>
6
+ #include <react/renderer/componentregistry/ComponentDescriptorRegistry.h>
7
+
8
+ namespace facebook {
9
+ namespace react {
10
+
11
+ class RNScreensComponentsRegistry
12
+ : public facebook::jni::HybridClass<RNScreensComponentsRegistry> {
13
+ public:
14
+ constexpr static auto kJavaDescriptor =
15
+ "Lcom/swmansion/rnscreens/RNScreensComponentsRegistry;";
16
+
17
+ static void registerNatives();
18
+
19
+ RNScreensComponentsRegistry(ComponentFactory *delegate);
20
+
21
+ private:
22
+ friend HybridBase;
23
+
24
+ static std::shared_ptr<ComponentDescriptorProviderRegistry const> sharedProviderRegistry();
25
+
26
+ const ComponentFactory *delegate_;
27
+
28
+ static jni::local_ref<jhybriddata> initHybrid(
29
+ jni::alias_ref<jclass>,
30
+ ComponentFactory *delegate);
31
+ };
32
+
33
+ } // namespace react
34
+ } // namespace facebook
@@ -0,0 +1,71 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaDelegate.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.react.bridge.ColorPropConverter;
15
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
16
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
17
+
18
+ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
19
+ public RNSScreenManagerDelegate(U viewManager) {
20
+ super(viewManager);
21
+ }
22
+ @Override
23
+ public void setProperty(T view, String propName, @Nullable Object value) {
24
+ switch (propName) {
25
+ case "stackPresentation":
26
+ mViewManager.setStackPresentation(view, (String) value);
27
+ break;
28
+ case "stackAnimation":
29
+ mViewManager.setStackAnimation(view, (String) value);
30
+ break;
31
+ case "gestureEnabled":
32
+ mViewManager.setGestureEnabled(view, value == null ? true : (boolean) value);
33
+ break;
34
+ case "replaceAnimation":
35
+ mViewManager.setReplaceAnimation(view, (String) value);
36
+ break;
37
+ case "screenOrientation":
38
+ mViewManager.setScreenOrientation(view, value == null ? null : (String) value);
39
+ break;
40
+ case "statusBarAnimation":
41
+ mViewManager.setStatusBarAnimation(view, value == null ? null : (String) value);
42
+ break;
43
+ case "statusBarColor":
44
+ mViewManager.setStatusBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
45
+ break;
46
+ case "statusBarStyle":
47
+ mViewManager.setStatusBarStyle(view, value == null ? null : (String) value);
48
+ break;
49
+ case "statusBarTranslucent":
50
+ mViewManager.setStatusBarTranslucent(view, value == null ? false : (boolean) value);
51
+ break;
52
+ case "statusBarHidden":
53
+ mViewManager.setStatusBarHidden(view, value == null ? false : (boolean) value);
54
+ break;
55
+ case "navigationBarColor":
56
+ mViewManager.setNavigationBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
57
+ break;
58
+ case "navigationBarHidden":
59
+ mViewManager.setNavigationBarHidden(view, value == null ? false : (boolean) value);
60
+ break;
61
+ case "nativeBackButtonDismissalEnabled":
62
+ mViewManager.setNativeBackButtonDismissalEnabled(view, value == null ? false : (boolean) value);
63
+ break;
64
+ case "activityState":
65
+ mViewManager.setActivityState(view, value == null ? -1 : ((Double) value).intValue());
66
+ break;
67
+ default:
68
+ super.setProperty(view, propName, value);
69
+ }
70
+ }
71
+ }
@@ -0,0 +1,30 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaInterface.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+
15
+ public interface RNSScreenManagerInterface<T extends View> {
16
+ void setStackPresentation(T view, @Nullable String value);
17
+ void setStackAnimation(T view, @Nullable String value);
18
+ void setGestureEnabled(T view, boolean value);
19
+ void setReplaceAnimation(T view, @Nullable String value);
20
+ void setScreenOrientation(T view, @Nullable String value);
21
+ void setStatusBarAnimation(T view, @Nullable String value);
22
+ void setStatusBarColor(T view, @Nullable Integer value);
23
+ void setStatusBarStyle(T view, @Nullable String value);
24
+ void setStatusBarTranslucent(T view, boolean value);
25
+ void setStatusBarHidden(T view, boolean value);
26
+ void setNavigationBarColor(T view, @Nullable Integer value);
27
+ void setNavigationBarHidden(T view, boolean value);
28
+ void setNativeBackButtonDismissalEnabled(T view, boolean value);
29
+ void setActivityState(T view, int value);
30
+ }
@@ -0,0 +1,104 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaDelegate.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.react.bridge.ColorPropConverter;
15
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
16
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
17
+
18
+ public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackHeaderConfigManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
19
+ public RNSScreenStackHeaderConfigManagerDelegate(U viewManager) {
20
+ super(viewManager);
21
+ }
22
+ @Override
23
+ public void setProperty(T view, String propName, @Nullable Object value) {
24
+ switch (propName) {
25
+ case "backgroundColor":
26
+ mViewManager.setBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
27
+ break;
28
+ case "backTitle":
29
+ mViewManager.setBackTitle(view, value == null ? null : (String) value);
30
+ break;
31
+ case "backTitleFontFamily":
32
+ mViewManager.setBackTitleFontFamily(view, value == null ? null : (String) value);
33
+ break;
34
+ case "backTitleFontSize":
35
+ mViewManager.setBackTitleFontSize(view, value == null ? 0 : ((Double) value).intValue());
36
+ break;
37
+ case "color":
38
+ mViewManager.setColor(view, ColorPropConverter.getColor(value, view.getContext()));
39
+ break;
40
+ case "direction":
41
+ mViewManager.setDirection(view, (String) value);
42
+ break;
43
+ case "hidden":
44
+ mViewManager.setHidden(view, value == null ? false : (boolean) value);
45
+ break;
46
+ case "hideShadow":
47
+ mViewManager.setHideShadow(view, value == null ? false : (boolean) value);
48
+ break;
49
+ case "largeTitle":
50
+ mViewManager.setLargeTitle(view, value == null ? false : (boolean) value);
51
+ break;
52
+ case "largeTitleFontFamily":
53
+ mViewManager.setLargeTitleFontFamily(view, value == null ? null : (String) value);
54
+ break;
55
+ case "largeTitleFontSize":
56
+ mViewManager.setLargeTitleFontSize(view, value == null ? 0 : ((Double) value).intValue());
57
+ break;
58
+ case "largeTitleFontWeight":
59
+ mViewManager.setLargeTitleFontWeight(view, value == null ? null : (String) value);
60
+ break;
61
+ case "largeTitleBackgroundColor":
62
+ mViewManager.setLargeTitleBackgroundColor(view, ColorPropConverter.getColor(value, view.getContext()));
63
+ break;
64
+ case "largeTitleHideShadow":
65
+ mViewManager.setLargeTitleHideShadow(view, value == null ? false : (boolean) value);
66
+ break;
67
+ case "largeTitleColor":
68
+ mViewManager.setLargeTitleColor(view, ColorPropConverter.getColor(value, view.getContext()));
69
+ break;
70
+ case "translucent":
71
+ mViewManager.setTranslucent(view, value == null ? false : (boolean) value);
72
+ break;
73
+ case "title":
74
+ mViewManager.setTitle(view, value == null ? null : (String) value);
75
+ break;
76
+ case "titleFontFamily":
77
+ mViewManager.setTitleFontFamily(view, value == null ? null : (String) value);
78
+ break;
79
+ case "titleFontSize":
80
+ mViewManager.setTitleFontSize(view, value == null ? 0 : ((Double) value).intValue());
81
+ break;
82
+ case "titleFontWeight":
83
+ mViewManager.setTitleFontWeight(view, value == null ? null : (String) value);
84
+ break;
85
+ case "titleColor":
86
+ mViewManager.setTitleColor(view, ColorPropConverter.getColor(value, view.getContext()));
87
+ break;
88
+ case "disableBackButtonMenu":
89
+ mViewManager.setDisableBackButtonMenu(view, value == null ? false : (boolean) value);
90
+ break;
91
+ case "hideBackButton":
92
+ mViewManager.setHideBackButton(view, value == null ? false : (boolean) value);
93
+ break;
94
+ case "topInsetEnabled":
95
+ mViewManager.setTopInsetEnabled(view, value == null ? false : (boolean) value);
96
+ break;
97
+ case "backButtonInCustomView":
98
+ mViewManager.setBackButtonInCustomView(view, value == null ? false : (boolean) value);
99
+ break;
100
+ default:
101
+ super.setProperty(view, propName, value);
102
+ }
103
+ }
104
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaInterface.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+
15
+ public interface RNSScreenStackHeaderConfigManagerInterface<T extends View> {
16
+ void setBackgroundColor(T view, @Nullable Integer value);
17
+ void setBackTitle(T view, @Nullable String value);
18
+ void setBackTitleFontFamily(T view, @Nullable String value);
19
+ void setBackTitleFontSize(T view, int value);
20
+ void setColor(T view, @Nullable Integer value);
21
+ void setDirection(T view, @Nullable String value);
22
+ void setHidden(T view, boolean value);
23
+ void setHideShadow(T view, boolean value);
24
+ void setLargeTitle(T view, boolean value);
25
+ void setLargeTitleFontFamily(T view, @Nullable String value);
26
+ void setLargeTitleFontSize(T view, int value);
27
+ void setLargeTitleFontWeight(T view, @Nullable String value);
28
+ void setLargeTitleBackgroundColor(T view, @Nullable Integer value);
29
+ void setLargeTitleHideShadow(T view, boolean value);
30
+ void setLargeTitleColor(T view, @Nullable Integer value);
31
+ void setTranslucent(T view, boolean value);
32
+ void setTitle(T view, @Nullable String value);
33
+ void setTitleFontFamily(T view, @Nullable String value);
34
+ void setTitleFontSize(T view, int value);
35
+ void setTitleFontWeight(T view, @Nullable String value);
36
+ void setTitleColor(T view, @Nullable Integer value);
37
+ void setDisableBackButtonMenu(T view, boolean value);
38
+ void setHideBackButton(T view, boolean value);
39
+ void setTopInsetEnabled(T view, boolean value);
40
+ void setBackButtonInCustomView(T view, boolean value);
41
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaDelegate.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+
17
+ public class RNSScreenStackHeaderSubviewManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackHeaderSubviewManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public RNSScreenStackHeaderSubviewManagerDelegate(U viewManager) {
19
+ super(viewManager);
20
+ }
21
+ @Override
22
+ public void setProperty(T view, String propName, @Nullable Object value) {
23
+ switch (propName) {
24
+ case "type":
25
+ mViewManager.setType(view, (String) value);
26
+ break;
27
+ default:
28
+ super.setProperty(view, propName, value);
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaInterface.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+
15
+ public interface RNSScreenStackHeaderSubviewManagerInterface<T extends View> {
16
+ void setType(T view, @Nullable String value);
17
+ }
@@ -0,0 +1,25 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaDelegate.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+ import androidx.annotation.Nullable;
14
+ import com.facebook.react.uimanager.BaseViewManagerDelegate;
15
+ import com.facebook.react.uimanager.BaseViewManagerInterface;
16
+
17
+ public class RNSScreenStackManagerDelegate<T extends View, U extends BaseViewManagerInterface<T> & RNSScreenStackManagerInterface<T>> extends BaseViewManagerDelegate<T, U> {
18
+ public RNSScreenStackManagerDelegate(U viewManager) {
19
+ super(viewManager);
20
+ }
21
+ @Override
22
+ public void setProperty(T view, String propName, @Nullable Object value) {
23
+ super.setProperty(view, propName, value);
24
+ }
25
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
3
+ *
4
+ * Do not edit this file as changes may cause incorrect behavior and will be lost
5
+ * once the code is regenerated.
6
+ *
7
+ * @generated by codegen project: GeneratePropsJavaInterface.js
8
+ */
9
+
10
+ package com.facebook.react.viewmanagers;
11
+
12
+ import android.view.View;
13
+
14
+ public interface RNSScreenStackManagerInterface<T extends View> {
15
+ // No props
16
+ }
@@ -0,0 +1,16 @@
1
+ package com.swmansion.rnscreens
2
+
3
+ import android.view.ViewGroup
4
+ import com.facebook.react.bridge.ReactContext
5
+ import androidx.annotation.UiThread
6
+ import com.facebook.react.uimanager.PixelUtil
7
+ import com.facebook.react.bridge.ReadableMap
8
+ import com.facebook.react.bridge.WritableMap
9
+ import com.facebook.react.bridge.WritableNativeMap
10
+ import kotlin.math.abs
11
+
12
+ abstract class FabricEnabledViewGroup constructor(context: ReactContext?) : ViewGroup(context) {
13
+ protected fun updateScreenSizeFabric(width: Int, height: Int) {
14
+ // do nothing
15
+ }
16
+ }