react-native-screens 3.13.1 → 3.14.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 +2 -2
- package/RNScreens.podspec +5 -4
- package/android/build.gradle +18 -1
- package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +8 -4
- package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +24 -6
- package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +14 -18
- package/android/src/main/jni/Android.mk +1 -2
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +39 -14
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +15 -6
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +3 -3
- package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +1 -1
- package/common/cpp/Android.mk +1 -2
- package/createNativeStackNavigator/README.md +4 -0
- package/ios/RNSConvert.h +30 -0
- package/ios/RNSConvert.mm +120 -0
- package/ios/RNSEnums.h +59 -0
- package/ios/RNSFullWindowOverlay.h +17 -2
- package/ios/RNSFullWindowOverlay.mm +199 -0
- package/ios/RNSScreen.h +70 -79
- package/ios/{RNSScreen.m → RNSScreen.mm} +679 -302
- package/ios/RNSScreenContainer.h +15 -1
- package/ios/{RNSScreenContainer.m → RNSScreenContainer.mm} +99 -8
- package/ios/{RNSScreenNavigationContainer.m → RNSScreenNavigationContainer.mm} +22 -0
- package/ios/RNSScreenStack.h +19 -3
- package/ios/{RNSScreenStack.m → RNSScreenStack.mm} +377 -126
- package/ios/{RNSScreenStackAnimator.m → RNSScreenStackAnimator.mm} +19 -14
- package/ios/RNSScreenStackHeaderConfig.h +20 -21
- package/ios/{RNSScreenStackHeaderConfig.m → RNSScreenStackHeaderConfig.mm} +232 -117
- package/ios/RNSScreenStackHeaderSubview.h +45 -0
- package/ios/RNSScreenStackHeaderSubview.mm +137 -0
- package/ios/RNSScreenViewEvent.h +12 -0
- package/ios/RNSScreenViewEvent.mm +59 -0
- package/ios/{RNSScreenWindowTraits.m → RNSScreenWindowTraits.mm} +3 -2
- package/ios/RNSSearchBar.h +14 -1
- package/ios/RNSSearchBar.mm +351 -0
- package/ios/{UIViewController+RNScreens.m → UIViewController+RNScreens.mm} +0 -0
- package/ios/{UIWindow+RNScreens.m → UIWindow+RNScreens.mm} +0 -0
- package/lib/commonjs/fabric/FullWindowOverlay.js +26 -0
- package/lib/commonjs/fabric/FullWindowOverlay.js.map +1 -0
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +21 -0
- package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenContainer.js +28 -0
- package/lib/commonjs/fabric/ScreenContainer.js.map +1 -0
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +21 -0
- package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenNavigationContainer.js +28 -0
- package/lib/commonjs/fabric/ScreenNavigationContainer.js.map +1 -0
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +21 -0
- package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/commonjs/fabric/SearchBar.js +37 -0
- package/lib/commonjs/fabric/SearchBar.js.map +1 -0
- package/lib/commonjs/fabric/SearchBarNativeComponent.js +25 -0
- package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -0
- package/lib/commonjs/fabric/index.js +32 -0
- package/lib/commonjs/fabric/index.js.map +1 -1
- package/lib/commonjs/index.native.js +5 -18
- package/lib/commonjs/index.native.js.map +1 -1
- package/lib/commonjs/native-stack/views/NativeStackView.js +30 -0
- package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +8 -2
- package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/module/fabric/FullWindowOverlay.js +15 -0
- package/lib/module/fabric/FullWindowOverlay.js.map +1 -0
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js +9 -0
- package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenContainer.js +17 -0
- package/lib/module/fabric/ScreenContainer.js.map +1 -0
- package/lib/module/fabric/ScreenContainerNativeComponent.js +9 -0
- package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenNavigationContainer.js +17 -0
- package/lib/module/fabric/ScreenNavigationContainer.js.map +1 -0
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +9 -0
- package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
- package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -1
- package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -1
- package/lib/module/fabric/SearchBar.js +24 -0
- package/lib/module/fabric/SearchBar.js.map +1 -0
- package/lib/module/fabric/SearchBarNativeComponent.js +11 -0
- package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -0
- package/lib/module/fabric/index.js +5 -1
- package/lib/module/fabric/index.js.map +1 -1
- package/lib/module/index.native.js +6 -20
- package/lib/module/index.native.js.map +1 -1
- package/lib/module/native-stack/views/NativeStackView.js +30 -0
- package/lib/module/native-stack/views/NativeStackView.js.map +1 -1
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js +7 -2
- package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -1
- package/lib/typescript/native-stack/types.d.ts +12 -0
- package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +1 -1
- package/lib/typescript/reanimated/ReanimatedScreen.d.ts +1 -1
- package/lib/typescript/types.d.ts +24 -0
- package/native-stack/README.md +21 -0
- package/package.json +2 -2
- package/src/fabric/FullWindowOverlay.js +13 -0
- package/src/fabric/FullWindowOverlayNativeComponent.js +19 -0
- package/src/fabric/ScreenContainer.js +16 -0
- package/src/fabric/ScreenContainerNativeComponent.js +19 -0
- package/src/fabric/ScreenNativeComponent.js +41 -8
- package/src/fabric/ScreenNavigationContainer.js +16 -0
- package/src/fabric/ScreenNavigationContainerNativeComponent.js +19 -0
- package/src/fabric/ScreenStackHeaderConfigNativeComponent.js +1 -1
- package/src/fabric/ScreenStackNativeComponent.js +4 -0
- package/src/fabric/SearchBar.js +20 -0
- package/src/fabric/SearchBarNativeComponent.js +62 -0
- package/src/fabric/index.js +8 -0
- package/src/index.native.tsx +13 -19
- package/src/native-stack/types.tsx +12 -0
- package/src/native-stack/views/NativeStackView.tsx +27 -0
- package/src/reanimated/ReanimatedNativeStackScreen.tsx +6 -0
- package/src/types.tsx +25 -0
- package/ios/RNSFullWindowOverlay.m +0 -105
- package/ios/RNSScreenComponentView.h +0 -23
- package/ios/RNSScreenComponentView.mm +0 -159
- package/ios/RNSScreenController.h +0 -10
- package/ios/RNSScreenController.mm +0 -79
- package/ios/RNSScreenStackComponentView.h +0 -15
- package/ios/RNSScreenStackComponentView.mm +0 -295
- package/ios/RNSScreenStackHeaderConfigComponentView.h +0 -42
- package/ios/RNSScreenStackHeaderConfigComponentView.mm +0 -662
- package/ios/RNSScreenStackHeaderSubviewComponentView.h +0 -14
- package/ios/RNSScreenStackHeaderSubviewComponentView.mm +0 -77
- package/ios/RNSSearchBar.m +0 -198
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ To learn about how to use `react-native-screens` with Fabric architecture, head
|
|
|
18
18
|
|
|
19
19
|
### iOS
|
|
20
20
|
|
|
21
|
-
Installation on iOS should be completely handled with auto-linking, if you have ensured pods are installed after adding this module, no other actions should be necessary
|
|
21
|
+
Installation on iOS should be completely handled with auto-linking, if you have ensured pods are installed after adding this module, no other actions should be necessary.
|
|
22
22
|
|
|
23
23
|
### Android
|
|
24
24
|
|
|
@@ -174,7 +174,7 @@ React native screens library is licensed under [The MIT License](LICENSE).
|
|
|
174
174
|
|
|
175
175
|
## Credits
|
|
176
176
|
|
|
177
|
-
This project has been build and is maintained thanks to the support from [Shopify](https://shopify.com), [Expo.io](https://expo.io) and [Software Mansion](https://swmansion.com)
|
|
177
|
+
This project has been build and is maintained thanks to the support from [Shopify](https://shopify.com), [Expo.io](https://expo.io), and [Software Mansion](https://swmansion.com).
|
|
178
178
|
|
|
179
179
|
[](https://shopify.com)
|
|
180
180
|
[](https://expo.io)
|
package/RNScreens.podspec
CHANGED
|
@@ -2,7 +2,7 @@ require "json"
|
|
|
2
2
|
|
|
3
3
|
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
4
|
|
|
5
|
-
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED']
|
|
5
|
+
fabric_enabled = ENV['RCT_NEW_ARCH_ENABLED'] == '1'
|
|
6
6
|
|
|
7
7
|
# folly_version must match the version used in React Native
|
|
8
8
|
# See folly_version in react-native/React/FBReactNativeSpec/FBReactNativeSpec.podspec
|
|
@@ -25,10 +25,11 @@ Pod::Spec.new do |s|
|
|
|
25
25
|
|
|
26
26
|
if fabric_enabled
|
|
27
27
|
s.pod_target_xcconfig = {
|
|
28
|
-
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/boost" "$(PODS_ROOT)/boost-for-react-native" "$(PODS_ROOT)/RCT-Folly"'
|
|
28
|
+
'HEADER_SEARCH_PATHS' => '"$(PODS_ROOT)/boost" "$(PODS_ROOT)/boost-for-react-native" "$(PODS_ROOT)/RCT-Folly"',
|
|
29
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++17",
|
|
29
30
|
}
|
|
30
31
|
s.platforms = { ios: '11.0', tvos: '11.0' }
|
|
31
|
-
s.compiler_flags = folly_compiler_flags
|
|
32
|
+
s.compiler_flags = folly_compiler_flags + ' ' + '-DRN_FABRIC_ENABLED'
|
|
32
33
|
s.source_files = 'ios/**/*.{h,m,mm,cpp}'
|
|
33
34
|
s.requires_arc = true
|
|
34
35
|
|
|
@@ -46,7 +47,7 @@ Pod::Spec.new do |s|
|
|
|
46
47
|
ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_TARGET_SRCROOT)/common/cpp\"" }
|
|
47
48
|
end
|
|
48
49
|
else
|
|
49
|
-
s.source_files = "ios/**/*.{h,m}"
|
|
50
|
+
s.source_files = "ios/**/*.{h,m,mm}"
|
|
50
51
|
s.requires_arc = true
|
|
51
52
|
|
|
52
53
|
s.dependency "React-Core"
|
package/android/build.gradle
CHANGED
|
@@ -8,7 +8,7 @@ buildscript {
|
|
|
8
8
|
}
|
|
9
9
|
dependencies {
|
|
10
10
|
classpath('com.android.tools.build:gradle:4.2.2')
|
|
11
|
-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.
|
|
11
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.6.21')}"
|
|
12
12
|
classpath "com.diffplug.spotless:spotless-plugin-gradle:5.15.0"
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -32,9 +32,23 @@ if (isNewArchitectureEnabled()) {
|
|
|
32
32
|
apply plugin: 'com.android.library'
|
|
33
33
|
apply plugin: 'kotlin-android'
|
|
34
34
|
|
|
35
|
+
def reactNativeArchitectures() {
|
|
36
|
+
def value = project.getProperties().get("reactNativeArchitectures")
|
|
37
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
38
|
+
}
|
|
39
|
+
|
|
35
40
|
android {
|
|
36
41
|
compileSdkVersion safeExtGet('compileSdkVersion', 28)
|
|
37
42
|
|
|
43
|
+
// Used to override the NDK path/version on internal CI or by allowing
|
|
44
|
+
// users to customize the NDK path/version from their root project (e.g. for M1 support)
|
|
45
|
+
if (rootProject.hasProperty("ndkPath")) {
|
|
46
|
+
ndkPath rootProject.ext.ndkPath
|
|
47
|
+
}
|
|
48
|
+
if (rootProject.hasProperty("ndkVersion")) {
|
|
49
|
+
ndkVersion rootProject.ext.ndkVersion
|
|
50
|
+
}
|
|
51
|
+
|
|
38
52
|
defaultConfig {
|
|
39
53
|
minSdkVersion safeExtGet('minSdkVersion', 16)
|
|
40
54
|
targetSdkVersion safeExtGet('targetSdkVersion', 22)
|
|
@@ -58,6 +72,9 @@ android {
|
|
|
58
72
|
}
|
|
59
73
|
}
|
|
60
74
|
}
|
|
75
|
+
ndk {
|
|
76
|
+
abiFilters (*reactNativeArchitectures())
|
|
77
|
+
}
|
|
61
78
|
}
|
|
62
79
|
lintOptions {
|
|
63
80
|
abortOnError false
|
|
@@ -15,7 +15,7 @@ class ScreenStack(context: Context?) : ScreenContainer<ScreenStackFragment>(cont
|
|
|
15
15
|
private val mStack = ArrayList<ScreenStackFragment>()
|
|
16
16
|
private val mDismissed: MutableSet<ScreenStackFragment> = HashSet()
|
|
17
17
|
private val drawingOpPool: MutableList<DrawingOp> = ArrayList()
|
|
18
|
-
private
|
|
18
|
+
private var drawingOps: MutableList<DrawingOp> = ArrayList()
|
|
19
19
|
private var mTopScreen: ScreenStackFragment? = null
|
|
20
20
|
private var mRemovalTransitionStarted = false
|
|
21
21
|
private var isDetachingCurrentScreen = false
|
|
@@ -273,12 +273,16 @@ class ScreenStack(context: Context?) : ScreenContainer<ScreenStackFragment>(cont
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
private fun drawAndRelease() {
|
|
276
|
-
|
|
277
|
-
|
|
276
|
+
// We make a copy of the drawingOps and use it to dispatch draws in order to be sure
|
|
277
|
+
// that we do not modify the original list. There are cases when `op.draw` can call
|
|
278
|
+
// `drawChild` which would modify the list through which we are iterating. See more:
|
|
279
|
+
// https://github.com/software-mansion/react-native-screens/pull/1406
|
|
280
|
+
val drawingOpsCopy = drawingOps
|
|
281
|
+
drawingOps = ArrayList()
|
|
282
|
+
for (op in drawingOpsCopy) {
|
|
278
283
|
op.draw()
|
|
279
284
|
drawingOpPool.add(op)
|
|
280
285
|
}
|
|
281
|
-
drawingOps.clear()
|
|
282
286
|
}
|
|
283
287
|
|
|
284
288
|
override fun dispatchDraw(canvas: Canvas) {
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
package com.swmansion.rnscreens
|
|
2
2
|
|
|
3
|
-
import androidx.annotation.NonNull
|
|
4
|
-
import androidx.annotation.Nullable
|
|
5
3
|
import com.facebook.react.bridge.JSApplicationIllegalArgumentException
|
|
4
|
+
import com.facebook.react.bridge.ReadableMap
|
|
6
5
|
import com.facebook.react.common.MapBuilder
|
|
7
6
|
import com.facebook.react.module.annotations.ReactModule
|
|
8
|
-
import com.facebook.react.uimanager.ReactStylesDiffMap
|
|
9
|
-
import com.facebook.react.uimanager.StateWrapper
|
|
10
7
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
11
8
|
import com.facebook.react.uimanager.ViewGroupManager
|
|
12
9
|
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
@@ -38,8 +35,12 @@ class ScreenViewManager : ViewGroupManager<Screen>(), RNSScreenManagerInterface<
|
|
|
38
35
|
return Screen(reactContext)
|
|
39
36
|
}
|
|
40
37
|
|
|
38
|
+
override fun setActivityState(view: Screen, activityState: Float) {
|
|
39
|
+
setActivityState(view, activityState.toInt())
|
|
40
|
+
}
|
|
41
|
+
|
|
41
42
|
@ReactProp(name = "activityState")
|
|
42
|
-
|
|
43
|
+
fun setActivityState(view: Screen, activityState: Int) {
|
|
43
44
|
if (activityState == -1) {
|
|
44
45
|
// Null will be provided when activityState is set as an animated value and we change
|
|
45
46
|
// it from JS to be a plain value (non animated).
|
|
@@ -105,7 +106,7 @@ class ScreenViewManager : ViewGroupManager<Screen>(), RNSScreenManagerInterface<
|
|
|
105
106
|
view.isStatusBarAnimated = animated
|
|
106
107
|
}
|
|
107
108
|
|
|
108
|
-
@ReactProp(name = "statusBarColor")
|
|
109
|
+
@ReactProp(name = "statusBarColor", customType = "Color")
|
|
109
110
|
override fun setStatusBarColor(view: Screen, statusBarColor: Int?) {
|
|
110
111
|
view.statusBarColor = statusBarColor
|
|
111
112
|
}
|
|
@@ -143,6 +144,23 @@ class ScreenViewManager : ViewGroupManager<Screen>(), RNSScreenManagerInterface<
|
|
|
143
144
|
view.nativeBackButtonDismissalEnabled = nativeBackButtonDismissalEnabled
|
|
144
145
|
}
|
|
145
146
|
|
|
147
|
+
// these props are not available on Android, however we must override their setters
|
|
148
|
+
override fun setFullScreenSwipeEnabled(view: Screen?, value: Boolean) = Unit
|
|
149
|
+
|
|
150
|
+
override fun setTransitionDuration(view: Screen?, value: Int) = Unit
|
|
151
|
+
|
|
152
|
+
override fun setHideKeyboardOnSwipe(view: Screen?, value: Boolean) = Unit
|
|
153
|
+
|
|
154
|
+
override fun setCustomAnimationOnSwipe(view: Screen?, value: Boolean) = Unit
|
|
155
|
+
|
|
156
|
+
override fun setGestureResponseDistance(view: Screen?, value: ReadableMap?) = Unit
|
|
157
|
+
|
|
158
|
+
override fun setHomeIndicatorHidden(view: Screen?, value: Boolean) = Unit
|
|
159
|
+
|
|
160
|
+
override fun setPreventNativeDismiss(view: Screen?, value: Boolean) = Unit
|
|
161
|
+
|
|
162
|
+
override fun setSwipeDirection(view: Screen?, value: String?) = Unit
|
|
163
|
+
|
|
146
164
|
override fun getExportedCustomDirectEventTypeConstants(): MutableMap<String, Any> {
|
|
147
165
|
val map: MutableMap<String, Any> = MapBuilder.of(
|
|
148
166
|
ScreenDismissedEvent.EVENT_NAME,
|
|
@@ -8,9 +8,7 @@ import android.app.Activity
|
|
|
8
8
|
import android.content.pm.ActivityInfo
|
|
9
9
|
import android.graphics.Color
|
|
10
10
|
import android.os.Build
|
|
11
|
-
import android.view.View
|
|
12
11
|
import android.view.ViewParent
|
|
13
|
-
import android.view.WindowManager
|
|
14
12
|
import androidx.core.view.ViewCompat
|
|
15
13
|
import androidx.core.view.WindowCompat
|
|
16
14
|
import androidx.core.view.WindowInsetsCompat
|
|
@@ -64,12 +62,12 @@ object ScreenWindowTraits {
|
|
|
64
62
|
UiThreadUtil.runOnUiThread(
|
|
65
63
|
object : GuardedRunnable(context) {
|
|
66
64
|
override fun runGuarded() {
|
|
67
|
-
activity
|
|
68
|
-
|
|
69
|
-
.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
|
|
70
|
-
val curColor = activity.window.statusBarColor
|
|
65
|
+
val window = activity.window
|
|
66
|
+
val curColor: Int = window.statusBarColor
|
|
71
67
|
val colorAnimation = ValueAnimator.ofObject(ArgbEvaluator(), curColor, color)
|
|
72
|
-
colorAnimation.addUpdateListener { animator ->
|
|
68
|
+
colorAnimation.addUpdateListener { animator ->
|
|
69
|
+
window.statusBarColor = animator.animatedValue as Int
|
|
70
|
+
}
|
|
73
71
|
if (animated) {
|
|
74
72
|
colorAnimation.setDuration(300).startDelay = 0
|
|
75
73
|
} else {
|
|
@@ -89,13 +87,10 @@ object ScreenWindowTraits {
|
|
|
89
87
|
|
|
90
88
|
UiThreadUtil.runOnUiThread {
|
|
91
89
|
val decorView = activity.window.decorView
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
systemUiVisibilityFlags and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()
|
|
97
|
-
}
|
|
98
|
-
decorView.systemUiVisibility = systemUiVisibilityFlags
|
|
90
|
+
val window = activity.window
|
|
91
|
+
val controller = WindowInsetsControllerCompat(window, decorView)
|
|
92
|
+
|
|
93
|
+
controller.isAppearanceLightStatusBars = style == "dark"
|
|
99
94
|
}
|
|
100
95
|
}
|
|
101
96
|
|
|
@@ -140,13 +135,14 @@ object ScreenWindowTraits {
|
|
|
140
135
|
}
|
|
141
136
|
val screenForHidden = findScreenForTrait(screen, WindowTraits.HIDDEN)
|
|
142
137
|
val hidden = screenForHidden?.isStatusBarHidden ?: false
|
|
138
|
+
val window = activity.window
|
|
139
|
+
val controller = WindowInsetsControllerCompat(window, window.decorView)
|
|
140
|
+
|
|
143
141
|
UiThreadUtil.runOnUiThread {
|
|
144
142
|
if (hidden) {
|
|
145
|
-
|
|
146
|
-
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN)
|
|
143
|
+
controller.hide(WindowInsetsCompat.Type.statusBars())
|
|
147
144
|
} else {
|
|
148
|
-
|
|
149
|
-
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
|
145
|
+
controller.show(WindowInsetsCompat.Type.statusBars())
|
|
150
146
|
}
|
|
151
147
|
}
|
|
152
148
|
}
|
|
@@ -20,7 +20,7 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni
|
|
|
20
20
|
LOCAL_SHARED_LIBRARIES := libjsi \
|
|
21
21
|
libfbjni \
|
|
22
22
|
libglog \
|
|
23
|
-
|
|
23
|
+
libfolly_runtime \
|
|
24
24
|
libyoga \
|
|
25
25
|
libreact_nativemodule_core \
|
|
26
26
|
libturbomodulejsijni \
|
|
@@ -28,7 +28,6 @@ LOCAL_SHARED_LIBRARIES := libjsi \
|
|
|
28
28
|
libreact_render_core \
|
|
29
29
|
libreact_render_graphics \
|
|
30
30
|
libfabricjni \
|
|
31
|
-
libfolly_futures \
|
|
32
31
|
libreact_debug \
|
|
33
32
|
libreact_render_componentregistry \
|
|
34
33
|
libreact_render_debug \
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java
CHANGED
|
@@ -12,6 +12,7 @@ package com.facebook.react.viewmanagers;
|
|
|
12
12
|
import android.view.View;
|
|
13
13
|
import androidx.annotation.Nullable;
|
|
14
14
|
import com.facebook.react.bridge.ColorPropConverter;
|
|
15
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
15
16
|
import com.facebook.react.uimanager.BaseViewManagerDelegate;
|
|
16
17
|
import com.facebook.react.uimanager.BaseViewManagerInterface;
|
|
17
18
|
|
|
@@ -22,17 +23,26 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerI
|
|
|
22
23
|
@Override
|
|
23
24
|
public void setProperty(T view, String propName, @Nullable Object value) {
|
|
24
25
|
switch (propName) {
|
|
25
|
-
case "
|
|
26
|
-
mViewManager.
|
|
26
|
+
case "customAnimationOnSwipe":
|
|
27
|
+
mViewManager.setCustomAnimationOnSwipe(view, value == null ? false : (boolean) value);
|
|
27
28
|
break;
|
|
28
|
-
case "
|
|
29
|
-
mViewManager.
|
|
29
|
+
case "fullScreenSwipeEnabled":
|
|
30
|
+
mViewManager.setFullScreenSwipeEnabled(view, value == null ? false : (boolean) value);
|
|
31
|
+
break;
|
|
32
|
+
case "homeIndicatorHidden":
|
|
33
|
+
mViewManager.setHomeIndicatorHidden(view, value == null ? false : (boolean) value);
|
|
34
|
+
break;
|
|
35
|
+
case "preventNativeDismiss":
|
|
36
|
+
mViewManager.setPreventNativeDismiss(view, value == null ? false : (boolean) value);
|
|
30
37
|
break;
|
|
31
38
|
case "gestureEnabled":
|
|
32
39
|
mViewManager.setGestureEnabled(view, value == null ? true : (boolean) value);
|
|
33
40
|
break;
|
|
34
|
-
case "
|
|
35
|
-
mViewManager.
|
|
41
|
+
case "statusBarColor":
|
|
42
|
+
mViewManager.setStatusBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
43
|
+
break;
|
|
44
|
+
case "statusBarHidden":
|
|
45
|
+
mViewManager.setStatusBarHidden(view, value == null ? false : (boolean) value);
|
|
36
46
|
break;
|
|
37
47
|
case "screenOrientation":
|
|
38
48
|
mViewManager.setScreenOrientation(view, value == null ? null : (String) value);
|
|
@@ -40,17 +50,35 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerI
|
|
|
40
50
|
case "statusBarAnimation":
|
|
41
51
|
mViewManager.setStatusBarAnimation(view, value == null ? null : (String) value);
|
|
42
52
|
break;
|
|
43
|
-
case "statusBarColor":
|
|
44
|
-
mViewManager.setStatusBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
45
|
-
break;
|
|
46
53
|
case "statusBarStyle":
|
|
47
54
|
mViewManager.setStatusBarStyle(view, value == null ? null : (String) value);
|
|
48
55
|
break;
|
|
49
56
|
case "statusBarTranslucent":
|
|
50
57
|
mViewManager.setStatusBarTranslucent(view, value == null ? false : (boolean) value);
|
|
51
58
|
break;
|
|
52
|
-
case "
|
|
53
|
-
mViewManager.
|
|
59
|
+
case "gestureResponseDistance":
|
|
60
|
+
mViewManager.setGestureResponseDistance(view, (ReadableMap) value);
|
|
61
|
+
break;
|
|
62
|
+
case "stackPresentation":
|
|
63
|
+
mViewManager.setStackPresentation(view, (String) value);
|
|
64
|
+
break;
|
|
65
|
+
case "stackAnimation":
|
|
66
|
+
mViewManager.setStackAnimation(view, (String) value);
|
|
67
|
+
break;
|
|
68
|
+
case "transitionDuration":
|
|
69
|
+
mViewManager.setTransitionDuration(view, value == null ? 350 : ((Double) value).intValue());
|
|
70
|
+
break;
|
|
71
|
+
case "replaceAnimation":
|
|
72
|
+
mViewManager.setReplaceAnimation(view, (String) value);
|
|
73
|
+
break;
|
|
74
|
+
case "swipeDirection":
|
|
75
|
+
mViewManager.setSwipeDirection(view, (String) value);
|
|
76
|
+
break;
|
|
77
|
+
case "hideKeyboardOnSwipe":
|
|
78
|
+
mViewManager.setHideKeyboardOnSwipe(view, value == null ? false : (boolean) value);
|
|
79
|
+
break;
|
|
80
|
+
case "activityState":
|
|
81
|
+
mViewManager.setActivityState(view, value == null ? -1f : ((Double) value).floatValue());
|
|
54
82
|
break;
|
|
55
83
|
case "navigationBarColor":
|
|
56
84
|
mViewManager.setNavigationBarColor(view, ColorPropConverter.getColor(value, view.getContext()));
|
|
@@ -61,9 +89,6 @@ public class RNSScreenManagerDelegate<T extends View, U extends BaseViewManagerI
|
|
|
61
89
|
case "nativeBackButtonDismissalEnabled":
|
|
62
90
|
mViewManager.setNativeBackButtonDismissalEnabled(view, value == null ? false : (boolean) value);
|
|
63
91
|
break;
|
|
64
|
-
case "activityState":
|
|
65
|
-
mViewManager.setActivityState(view, value == null ? -1 : ((Double) value).intValue());
|
|
66
|
-
break;
|
|
67
92
|
default:
|
|
68
93
|
super.setProperty(view, propName, value);
|
|
69
94
|
}
|
package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java
CHANGED
|
@@ -11,20 +11,29 @@ package com.facebook.react.viewmanagers;
|
|
|
11
11
|
|
|
12
12
|
import android.view.View;
|
|
13
13
|
import androidx.annotation.Nullable;
|
|
14
|
+
import com.facebook.react.bridge.ReadableMap;
|
|
14
15
|
|
|
15
16
|
public interface RNSScreenManagerInterface<T extends View> {
|
|
16
|
-
void
|
|
17
|
-
void
|
|
17
|
+
void setCustomAnimationOnSwipe(T view, boolean value);
|
|
18
|
+
void setFullScreenSwipeEnabled(T view, boolean value);
|
|
19
|
+
void setHomeIndicatorHidden(T view, boolean value);
|
|
20
|
+
void setPreventNativeDismiss(T view, boolean value);
|
|
18
21
|
void setGestureEnabled(T view, boolean value);
|
|
19
|
-
void
|
|
22
|
+
void setStatusBarColor(T view, @Nullable Integer value);
|
|
23
|
+
void setStatusBarHidden(T view, boolean value);
|
|
20
24
|
void setScreenOrientation(T view, @Nullable String value);
|
|
21
25
|
void setStatusBarAnimation(T view, @Nullable String value);
|
|
22
|
-
void setStatusBarColor(T view, @Nullable Integer value);
|
|
23
26
|
void setStatusBarStyle(T view, @Nullable String value);
|
|
24
27
|
void setStatusBarTranslucent(T view, boolean value);
|
|
25
|
-
void
|
|
28
|
+
void setGestureResponseDistance(T view, @Nullable ReadableMap value);
|
|
29
|
+
void setStackPresentation(T view, @Nullable String value);
|
|
30
|
+
void setStackAnimation(T view, @Nullable String value);
|
|
31
|
+
void setTransitionDuration(T view, int value);
|
|
32
|
+
void setReplaceAnimation(T view, @Nullable String value);
|
|
33
|
+
void setSwipeDirection(T view, @Nullable String value);
|
|
34
|
+
void setHideKeyboardOnSwipe(T view, boolean value);
|
|
35
|
+
void setActivityState(T view, float value);
|
|
26
36
|
void setNavigationBarColor(T view, @Nullable Integer value);
|
|
27
37
|
void setNavigationBarHidden(T view, boolean value);
|
|
28
38
|
void setNativeBackButtonDismissalEnabled(T view, boolean value);
|
|
29
|
-
void setActivityState(T view, int value);
|
|
30
39
|
}
|
|
@@ -91,12 +91,12 @@ public class RNSScreenStackHeaderConfigManagerDelegate<T extends View, U extends
|
|
|
91
91
|
case "hideBackButton":
|
|
92
92
|
mViewManager.setHideBackButton(view, value == null ? false : (boolean) value);
|
|
93
93
|
break;
|
|
94
|
-
case "topInsetEnabled":
|
|
95
|
-
mViewManager.setTopInsetEnabled(view, value == null ? false : (boolean) value);
|
|
96
|
-
break;
|
|
97
94
|
case "backButtonInCustomView":
|
|
98
95
|
mViewManager.setBackButtonInCustomView(view, value == null ? false : (boolean) value);
|
|
99
96
|
break;
|
|
97
|
+
case "topInsetEnabled":
|
|
98
|
+
mViewManager.setTopInsetEnabled(view, value == null ? false : (boolean) value);
|
|
99
|
+
break;
|
|
100
100
|
default:
|
|
101
101
|
super.setProperty(view, propName, value);
|
|
102
102
|
}
|
|
@@ -36,6 +36,6 @@ public interface RNSScreenStackHeaderConfigManagerInterface<T extends View> {
|
|
|
36
36
|
void setTitleColor(T view, @Nullable Integer value);
|
|
37
37
|
void setDisableBackButtonMenu(T view, boolean value);
|
|
38
38
|
void setHideBackButton(T view, boolean value);
|
|
39
|
-
void setTopInsetEnabled(T view, boolean value);
|
|
40
39
|
void setBackButtonInCustomView(T view, boolean value);
|
|
40
|
+
void setTopInsetEnabled(T view, boolean value);
|
|
41
41
|
}
|
package/common/cpp/Android.mk
CHANGED
|
@@ -15,7 +15,7 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH) $(GENERATED_SRC_DIR)/codegen/jni
|
|
|
15
15
|
LOCAL_SHARED_LIBRARIES := libjsi \
|
|
16
16
|
libfbjni \
|
|
17
17
|
libglog \
|
|
18
|
-
|
|
18
|
+
libfolly_runtime \
|
|
19
19
|
libyoga \
|
|
20
20
|
libreact_nativemodule_core \
|
|
21
21
|
libturbomodulejsijni \
|
|
@@ -23,7 +23,6 @@ LOCAL_SHARED_LIBRARIES := libjsi \
|
|
|
23
23
|
libreact_render_core \
|
|
24
24
|
libreact_render_graphics \
|
|
25
25
|
libfabricjni \
|
|
26
|
-
libfolly_futures \
|
|
27
26
|
libreact_debug \
|
|
28
27
|
libreact_render_componentregistry \
|
|
29
28
|
libreact_render_debug \
|
|
@@ -398,6 +398,10 @@ The search field background color.
|
|
|
398
398
|
|
|
399
399
|
By default bar tint color is translucent.
|
|
400
400
|
|
|
401
|
+
#### `tintColor`
|
|
402
|
+
|
|
403
|
+
The color for the cursor caret and cancel button text.
|
|
404
|
+
|
|
401
405
|
#### `cancelButtonText`
|
|
402
406
|
|
|
403
407
|
The text to be used instead of default `Cancel` button text.
|
package/ios/RNSConvert.h
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#ifdef RN_FABRIC_ENABLED
|
|
2
|
+
#import <react/renderer/components/rnscreens/Props.h>
|
|
3
|
+
#import "RNSEnums.h"
|
|
4
|
+
|
|
5
|
+
@interface RNSConvert : NSObject
|
|
6
|
+
|
|
7
|
+
+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
|
|
8
|
+
(facebook::react::RNSScreenStackPresentation)stackPresentation;
|
|
9
|
+
|
|
10
|
+
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:
|
|
11
|
+
(facebook::react::RNSScreenStackAnimation)stackAnimation;
|
|
12
|
+
|
|
13
|
+
+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent:
|
|
14
|
+
(facebook::react::RNSScreenStackHeaderSubviewType)subviewType;
|
|
15
|
+
|
|
16
|
+
+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent:
|
|
17
|
+
(facebook::react::RNSScreenReplaceAnimation)replaceAnimation;
|
|
18
|
+
|
|
19
|
+
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
|
|
20
|
+
(facebook::react::RNSScreenSwipeDirection)swipeDirection;
|
|
21
|
+
|
|
22
|
+
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
|
|
23
|
+
(const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance;
|
|
24
|
+
|
|
25
|
+
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
26
|
+
(facebook::react::RNSSearchBarAutoCapitalize)autoCapitalize;
|
|
27
|
+
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
#endif // RN_FABRIC_ENABLED
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
#import "RNSConvert.h"
|
|
2
|
+
|
|
3
|
+
#ifdef RN_FABRIC_ENABLED
|
|
4
|
+
@implementation RNSConvert
|
|
5
|
+
|
|
6
|
+
+ (RNSScreenStackPresentation)RNSScreenStackPresentationFromCppEquivalent:
|
|
7
|
+
(facebook::react::RNSScreenStackPresentation)stackPresentation
|
|
8
|
+
{
|
|
9
|
+
switch (stackPresentation) {
|
|
10
|
+
case facebook::react::RNSScreenStackPresentation::Push:
|
|
11
|
+
return RNSScreenStackPresentationPush;
|
|
12
|
+
case facebook::react::RNSScreenStackPresentation::Modal:
|
|
13
|
+
return RNSScreenStackPresentationModal;
|
|
14
|
+
case facebook::react::RNSScreenStackPresentation::FullScreenModal:
|
|
15
|
+
return RNSScreenStackPresentationFullScreenModal;
|
|
16
|
+
case facebook::react::RNSScreenStackPresentation::FormSheet:
|
|
17
|
+
return RNSScreenStackPresentationFormSheet;
|
|
18
|
+
case facebook::react::RNSScreenStackPresentation::ContainedModal:
|
|
19
|
+
return RNSScreenStackPresentationContainedModal;
|
|
20
|
+
case facebook::react::RNSScreenStackPresentation::TransparentModal:
|
|
21
|
+
return RNSScreenStackPresentationTransparentModal;
|
|
22
|
+
case facebook::react::RNSScreenStackPresentation::ContainedTransparentModal:
|
|
23
|
+
return RNSScreenStackPresentationContainedTransparentModal;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
+ (RNSScreenStackAnimation)RNSScreenStackAnimationFromCppEquivalent:
|
|
28
|
+
(facebook::react::RNSScreenStackAnimation)stackAnimation
|
|
29
|
+
{
|
|
30
|
+
switch (stackAnimation) {
|
|
31
|
+
// these three are intentionally grouped
|
|
32
|
+
case facebook::react::RNSScreenStackAnimation::Slide_from_right:
|
|
33
|
+
case facebook::react::RNSScreenStackAnimation::Slide_from_left:
|
|
34
|
+
case facebook::react::RNSScreenStackAnimation::Default:
|
|
35
|
+
return RNSScreenStackAnimationDefault;
|
|
36
|
+
case facebook::react::RNSScreenStackAnimation::Flip:
|
|
37
|
+
return RNSScreenStackAnimationFlip;
|
|
38
|
+
case facebook::react::RNSScreenStackAnimation::Simple_push:
|
|
39
|
+
return RNSScreenStackAnimationSimplePush;
|
|
40
|
+
case facebook::react::RNSScreenStackAnimation::None:
|
|
41
|
+
return RNSScreenStackAnimationNone;
|
|
42
|
+
case facebook::react::RNSScreenStackAnimation::Fade:
|
|
43
|
+
return RNSScreenStackAnimationFade;
|
|
44
|
+
case facebook::react::RNSScreenStackAnimation::Slide_from_bottom:
|
|
45
|
+
return RNSScreenStackAnimationSlideFromBottom;
|
|
46
|
+
case facebook::react::RNSScreenStackAnimation::Fade_from_bottom:
|
|
47
|
+
return RNSScreenStackAnimationFadeFromBottom;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
+ (RNSScreenStackHeaderSubviewType)RNSScreenStackHeaderSubviewTypeFromCppEquivalent:
|
|
52
|
+
(facebook::react::RNSScreenStackHeaderSubviewType)subviewType
|
|
53
|
+
{
|
|
54
|
+
switch (subviewType) {
|
|
55
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::Left:
|
|
56
|
+
return RNSScreenStackHeaderSubviewTypeLeft;
|
|
57
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::Right:
|
|
58
|
+
return RNSScreenStackHeaderSubviewTypeRight;
|
|
59
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::Title:
|
|
60
|
+
return RNSScreenStackHeaderSubviewTypeTitle;
|
|
61
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::Center:
|
|
62
|
+
return RNSScreenStackHeaderSubviewTypeCenter;
|
|
63
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::SearchBar:
|
|
64
|
+
return RNSScreenStackHeaderSubviewTypeSearchBar;
|
|
65
|
+
case facebook::react::RNSScreenStackHeaderSubviewType::Back:
|
|
66
|
+
return RNSScreenStackHeaderSubviewTypeBackButton;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
+ (RNSScreenReplaceAnimation)RNSScreenReplaceAnimationFromCppEquivalent:
|
|
71
|
+
(facebook::react::RNSScreenReplaceAnimation)replaceAnimation
|
|
72
|
+
{
|
|
73
|
+
switch (replaceAnimation) {
|
|
74
|
+
case facebook::react::RNSScreenReplaceAnimation::Pop:
|
|
75
|
+
return RNSScreenReplaceAnimationPop;
|
|
76
|
+
case facebook::react::RNSScreenReplaceAnimation::Push:
|
|
77
|
+
return RNSScreenReplaceAnimationPush;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
+ (RNSScreenSwipeDirection)RNSScreenSwipeDirectionFromCppEquivalent:
|
|
82
|
+
(facebook::react::RNSScreenSwipeDirection)swipeDirection
|
|
83
|
+
{
|
|
84
|
+
switch (swipeDirection) {
|
|
85
|
+
case facebook::react::RNSScreenSwipeDirection::Horizontal:
|
|
86
|
+
return RNSScreenSwipeDirectionHorizontal;
|
|
87
|
+
case facebook::react::RNSScreenSwipeDirection::Vertical:
|
|
88
|
+
return RNSScreenSwipeDirectionVertical;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
+ (NSDictionary *)gestureResponseDistanceDictFromCppStruct:
|
|
93
|
+
(const facebook::react::RNSScreenGestureResponseDistanceStruct &)gestureResponseDistance
|
|
94
|
+
{
|
|
95
|
+
return @{
|
|
96
|
+
@"start" : @(gestureResponseDistance.start),
|
|
97
|
+
@"end" : @(gestureResponseDistance.end),
|
|
98
|
+
@"top" : @(gestureResponseDistance.top),
|
|
99
|
+
@"bottom" : @(gestureResponseDistance.bottom),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
+ (UITextAutocapitalizationType)UITextAutocapitalizationTypeFromCppEquivalent:
|
|
104
|
+
(facebook::react::RNSSearchBarAutoCapitalize)autoCapitalize
|
|
105
|
+
{
|
|
106
|
+
switch (autoCapitalize) {
|
|
107
|
+
case facebook::react::RNSSearchBarAutoCapitalize::Words:
|
|
108
|
+
return UITextAutocapitalizationTypeWords;
|
|
109
|
+
case facebook::react::RNSSearchBarAutoCapitalize::Sentences:
|
|
110
|
+
return UITextAutocapitalizationTypeSentences;
|
|
111
|
+
case facebook::react::RNSSearchBarAutoCapitalize::Characters:
|
|
112
|
+
return UITextAutocapitalizationTypeAllCharacters;
|
|
113
|
+
case facebook::react::RNSSearchBarAutoCapitalize::None:
|
|
114
|
+
return UITextAutocapitalizationTypeNone;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@end
|
|
119
|
+
|
|
120
|
+
#endif // RN_FABRIC_ENABLED
|
package/ios/RNSEnums.h
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
typedef NS_ENUM(NSInteger, RNSScreenStackPresentation) {
|
|
2
|
+
RNSScreenStackPresentationPush,
|
|
3
|
+
RNSScreenStackPresentationModal,
|
|
4
|
+
RNSScreenStackPresentationTransparentModal,
|
|
5
|
+
RNSScreenStackPresentationContainedModal,
|
|
6
|
+
RNSScreenStackPresentationContainedTransparentModal,
|
|
7
|
+
RNSScreenStackPresentationFullScreenModal,
|
|
8
|
+
RNSScreenStackPresentationFormSheet
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
typedef NS_ENUM(NSInteger, RNSScreenStackAnimation) {
|
|
12
|
+
RNSScreenStackAnimationDefault,
|
|
13
|
+
RNSScreenStackAnimationNone,
|
|
14
|
+
RNSScreenStackAnimationFade,
|
|
15
|
+
RNSScreenStackAnimationFadeFromBottom,
|
|
16
|
+
RNSScreenStackAnimationFlip,
|
|
17
|
+
RNSScreenStackAnimationSlideFromBottom,
|
|
18
|
+
RNSScreenStackAnimationSimplePush,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
typedef NS_ENUM(NSInteger, RNSScreenReplaceAnimation) {
|
|
22
|
+
RNSScreenReplaceAnimationPop,
|
|
23
|
+
RNSScreenReplaceAnimationPush,
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
typedef NS_ENUM(NSInteger, RNSScreenSwipeDirection) {
|
|
27
|
+
RNSScreenSwipeDirectionHorizontal,
|
|
28
|
+
RNSScreenSwipeDirectionVertical,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
typedef NS_ENUM(NSInteger, RNSActivityState) {
|
|
32
|
+
RNSActivityStateInactive = 0,
|
|
33
|
+
RNSActivityStateTransitioningOrBelowTop = 1,
|
|
34
|
+
RNSActivityStateOnTop = 2
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
typedef NS_ENUM(NSInteger, RNSStatusBarStyle) {
|
|
38
|
+
RNSStatusBarStyleAuto,
|
|
39
|
+
RNSStatusBarStyleInverted,
|
|
40
|
+
RNSStatusBarStyleLight,
|
|
41
|
+
RNSStatusBarStyleDark,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
typedef NS_ENUM(NSInteger, RNSWindowTrait) {
|
|
45
|
+
RNSWindowTraitStyle,
|
|
46
|
+
RNSWindowTraitAnimation,
|
|
47
|
+
RNSWindowTraitHidden,
|
|
48
|
+
RNSWindowTraitOrientation,
|
|
49
|
+
RNSWindowTraitHomeIndicatorHidden,
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
typedef NS_ENUM(NSInteger, RNSScreenStackHeaderSubviewType) {
|
|
53
|
+
RNSScreenStackHeaderSubviewTypeBackButton,
|
|
54
|
+
RNSScreenStackHeaderSubviewTypeLeft,
|
|
55
|
+
RNSScreenStackHeaderSubviewTypeRight,
|
|
56
|
+
RNSScreenStackHeaderSubviewTypeTitle,
|
|
57
|
+
RNSScreenStackHeaderSubviewTypeCenter,
|
|
58
|
+
RNSScreenStackHeaderSubviewTypeSearchBar,
|
|
59
|
+
};
|