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.
- package/README.md +4 -0
- package/RNScreens.podspec +36 -6
- package/android/build.gradle +73 -1
- package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
- package/android/src/fabric/java/com/swmansion/rnscreens/RNScreensComponentsRegistry.java +28 -0
- package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +11 -2
- package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +24 -10
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +83 -18
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +17 -5
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +14 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +33 -16
- package/android/src/main/jni/Android.mk +45 -0
- package/android/src/main/jni/OnLoad.cpp +9 -0
- package/android/src/main/jni/RNScreensComponentsRegistry.cpp +66 -0
- package/android/src/main/jni/RNScreensComponentsRegistry.h +34 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +71 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +30 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +104 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +41 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
- package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +16 -0
- package/common/cpp/Android.mk +38 -0
- package/common/cpp/rnscreens/RNSScreenComponentDescriptor.h +41 -0
- package/common/cpp/rnscreens/RNSScreenShadowNode.cpp +9 -0
- package/common/cpp/rnscreens/RNSScreenShadowNode.h +29 -0
- package/common/cpp/rnscreens/RNSScreenState.cpp +14 -0
- package/common/cpp/rnscreens/RNSScreenState.h +46 -0
- package/ios/RNSScreenComponentView.h +23 -0
- package/ios/RNSScreenComponentView.mm +159 -0
- package/ios/RNSScreenController.h +10 -0
- package/ios/RNSScreenController.mm +79 -0
- package/ios/RNSScreenStackComponentView.h +15 -0
- package/ios/RNSScreenStackComponentView.mm +295 -0
- package/ios/RNSScreenStackHeaderConfigComponentView.h +42 -0
- package/ios/RNSScreenStackHeaderConfigComponentView.mm +662 -0
- package/ios/RNSScreenStackHeaderSubviewComponentView.h +14 -0
- package/ios/RNSScreenStackHeaderSubviewComponentView.mm +77 -0
- package/ios/utils/RNSUIBarButtonItem.h +5 -0
- package/ios/utils/RNSUIBarButtonItem.mm +22 -0
- package/lib/commonjs/fabric/Screen.js +27 -0
- package/lib/commonjs/fabric/Screen.js.map +1 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js +23 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStack.js +27 -0
- package/lib/commonjs/fabric/ScreenStack.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +27 -0
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubview.js +34 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubview.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +27 -0
- package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js +21 -0
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/index.js +40 -0
- package/lib/commonjs/fabric/index.js.map +1 -0
- package/lib/commonjs/index.native.js +32 -15
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/module/fabric/Screen.js +11 -0
- package/lib/module/fabric/Screen.js.map +1 -0
- package/lib/module/fabric/ScreenNativeComponent.js +11 -0
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStack.js +12 -0
- package/lib/module/fabric/ScreenStack.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +10 -0
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderSubview.js +21 -0
- package/lib/module/fabric/ScreenStackHeaderSubview.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +10 -0
- package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStackNativeComponent.js +9 -0
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
- package/lib/module/fabric/index.js +6 -0
- package/lib/module/fabric/index.js.map +1 -0
- package/lib/module/index.native.js +32 -15
- package/lib/module/index.native.js.map +1 -1
- package/package.json +17 -3
- package/src/fabric/Screen.js +12 -0
- package/src/fabric/ScreenNativeComponent.js +64 -0
- package/src/fabric/ScreenStack.js +8 -0
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +54 -0
- package/src/fabric/ScreenStackHeaderSubview.js +20 -0
- package/src/fabric/ScreenStackHeaderSubviewNativeComponent.js +31 -0
- package/src/fabric/ScreenStackNativeComponent.js +19 -0
- package/src/fabric/index.js +11 -0
- 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 ==
|
|
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,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
|
+
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java
ADDED
|
@@ -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
|
+
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java
ADDED
|
@@ -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
|
+
}
|