react-native 0.83.0-nightly-20251006-07f40ec6b → 0.83.0-nightly-20251008-31bff4e09
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/Libraries/Animated/nodes/AnimatedColor.js +26 -10
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/NativeComponent/NativeComponentRegistry.d.ts +98 -0
- package/React/Base/RCTBridgeModule.h +2 -2
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI-generated.cpp +6 -0
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +9 -0
- package/React/Fabric/Mounting/RCTMountingManager.mm +1 -1
- package/ReactAndroid/api/ReactAndroid.api +20 -0
- package/ReactAndroid/gradle.properties +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlags.kt +7 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxAccessor.kt +11 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsCxxInterop.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsDefaults.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsLocalAccessor.kt +12 -1
- package/ReactAndroid/src/main/java/com/facebook/react/internal/featureflags/ReactNativeFeatureFlagsProvider.kt +3 -1
- package/ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.kt +1 -1
- package/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.kt +2 -2
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java +10 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +3 -0
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollView.java +19 -1
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewHelper.kt +45 -16
- package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.kt +3 -0
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.cpp +15 -1
- package/ReactAndroid/src/main/jni/react/featureflags/JReactNativeFeatureFlagsCxxInterop.h +4 -1
- package/ReactCommon/cxxreact/ReactNativeVersion.h +1 -1
- package/ReactCommon/hermes/inspector-modern/chrome/HermesRuntimeAgentDelegate.cpp +3 -4
- package/ReactCommon/jsinspector-modern/HostAgent.cpp +19 -0
- package/ReactCommon/jsinspector-modern/NetworkIOAgent.cpp +4 -4
- package/ReactCommon/jsinspector-modern/SessionState.h +1 -0
- package/ReactCommon/jsinspector-modern/tests/DebuggerSessionObserverTest.cpp +151 -0
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +37 -19
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.h +4 -2
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDefaults.h +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsDynamicProvider.h +10 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsProvider.h +2 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.cpp +7 -2
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +4 -2
- package/ReactCommon/react/renderer/animationbackend/AnimationBackend.h +8 -7
- package/ReactCommon/react/renderer/components/scrollview/platform/android/react/renderer/components/scrollview/AndroidHorizontalScrollContentViewShadowNode.h +5 -1
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp +37 -12
- package/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h +7 -14
- package/ReactCommon/react/renderer/scheduler/SurfaceHandler.cpp +2 -2
- package/ReactCommon/react/renderer/textlayoutmanager/platform/cxx/react/renderer/textlayoutmanager/TextLayoutManager.cpp +8 -5
- package/ReactCommon/react/renderer/uimanager/PointerEventsProcessor.cpp +5 -3
- package/ReactCommon/react/renderer/uimanager/UIManager.cpp +7 -5
- package/ReactCommon/react/renderer/uimanager/UIManagerBinding.cpp +3 -3
- package/ReactCommon/react/renderer/uimanager/tests/PointerEventsProcessorTest.cpp +4 -2
- package/ReactCommon/react/utils/tests/hash_combineTests.cpp +2 -2
- package/ReactCommon/reactperflogger/fusebox/FuseboxTracer.cpp +4 -1
- package/package.json +8 -8
- package/sdks/hermesc/osx-bin/hermes +0 -0
- package/sdks/hermesc/osx-bin/hermesc +0 -0
- package/sdks/hermesc/win64-bin/hermesc.exe +0 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +6 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
- package/third-party-podspecs/ReactNativeDependencies.podspec +1 -1
- package/types/index.d.ts +1 -0
- package/types_generated/Libraries/Animated/nodes/AnimatedColor.d.ts +5 -1
- package/ReactCommon/jsinspector-modern/tests/RuntimeTargetDebuggerSessionObserverTest.cpp +0 -214
|
@@ -110,6 +110,27 @@ function isRgbaAnimatedValue(value: any): boolean {
|
|
|
110
110
|
);
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
+
export function getRgbaValueAndNativeColor(
|
|
114
|
+
value: RgbaValue | ColorValue,
|
|
115
|
+
): $ReadOnly<{
|
|
116
|
+
rgbaValue: RgbaValue,
|
|
117
|
+
nativeColor?: NativeColorValue,
|
|
118
|
+
}> {
|
|
119
|
+
const processedColor: RgbaValue | NativeColorValue =
|
|
120
|
+
// $FlowFixMe[incompatible-type] - Type is verified above
|
|
121
|
+
processColor((value: ColorValue | RgbaValue)) ?? defaultColor;
|
|
122
|
+
if (isRgbaValue(processedColor)) {
|
|
123
|
+
// $FlowFixMe[incompatible-type] - Type is verified above
|
|
124
|
+
return {rgbaValue: (processedColor: RgbaValue)};
|
|
125
|
+
} else {
|
|
126
|
+
return {
|
|
127
|
+
// $FlowFixMe[incompatible-type] - Type is verified above
|
|
128
|
+
nativeColor: (processedColor: NativeColorValue),
|
|
129
|
+
rgbaValue: defaultColor,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
113
134
|
export default class AnimatedColor extends AnimatedWithChildren {
|
|
114
135
|
r: AnimatedValue;
|
|
115
136
|
g: AnimatedValue;
|
|
@@ -132,18 +153,13 @@ export default class AnimatedColor extends AnimatedWithChildren {
|
|
|
132
153
|
this.b = rgbaAnimatedValue.b;
|
|
133
154
|
this.a = rgbaAnimatedValue.a;
|
|
134
155
|
} else {
|
|
135
|
-
const
|
|
136
|
-
// $FlowFixMe[incompatible-type] - Type is verified above
|
|
137
|
-
processColor((value: ColorValue | RgbaValue)) ?? defaultColor;
|
|
138
|
-
let initColor: RgbaValue = defaultColor;
|
|
139
|
-
if (isRgbaValue(processedColor)) {
|
|
156
|
+
const {rgbaValue: initColor, nativeColor} = getRgbaValueAndNativeColor(
|
|
140
157
|
// $FlowFixMe[incompatible-type] - Type is verified above
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
this.nativeColor =
|
|
158
|
+
(value: ColorValue | RgbaValue),
|
|
159
|
+
);
|
|
160
|
+
if (nativeColor) {
|
|
161
|
+
this.nativeColor = nativeColor;
|
|
145
162
|
}
|
|
146
|
-
|
|
147
163
|
this.r = new AnimatedValue(initColor.r);
|
|
148
164
|
this.g = new AnimatedValue(initColor.g);
|
|
149
165
|
this.b = new AnimatedValue(initColor.b);
|
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 83;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251008-31bff4e09';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import type {HostComponent} from '../../types/public/ReactNativeTypes';
|
|
11
|
+
import * as React from 'react';
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Configures a function that is called to determine whether a given component
|
|
15
|
+
* should be registered using reflection of the native component at runtime.
|
|
16
|
+
*
|
|
17
|
+
* The provider should return null if the native component is unavailable in
|
|
18
|
+
* the current environment.
|
|
19
|
+
*/
|
|
20
|
+
export function setRuntimeConfigProvider(
|
|
21
|
+
runtimeConfigProvider: (name: string) => {
|
|
22
|
+
native: boolean;
|
|
23
|
+
verify: boolean;
|
|
24
|
+
} | null,
|
|
25
|
+
): void;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Gets a `NativeComponent` that can be rendered by React Native.
|
|
29
|
+
*
|
|
30
|
+
* The supplied `viewConfigProvider` may or may not be invoked and utilized,
|
|
31
|
+
* depending on how `setRuntimeConfigProvider` is configured.
|
|
32
|
+
*/
|
|
33
|
+
export function get<Config extends object>(
|
|
34
|
+
name: string,
|
|
35
|
+
viewConfigProvider: () => PartialViewConfig,
|
|
36
|
+
): HostComponent<Config>;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Same as `NativeComponentRegistry.get(...)`, except this will check either
|
|
40
|
+
* the `setRuntimeConfigProvider` configuration or use native reflection (slow)
|
|
41
|
+
* to determine whether this native component is available.
|
|
42
|
+
*
|
|
43
|
+
* If the native component is not available, a stub component is returned. Note
|
|
44
|
+
* that the return value of this is not `HostComponent` because the returned
|
|
45
|
+
* component instance is not guaranteed to have native methods.
|
|
46
|
+
*/
|
|
47
|
+
export function getWithFallback_DEPRECATED<Config extends object>(
|
|
48
|
+
name: string,
|
|
49
|
+
viewConfigProvider: () => PartialViewConfig,
|
|
50
|
+
): React.ComponentType<Config>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Unstable API. Do not use!
|
|
54
|
+
*
|
|
55
|
+
* This method returns if there is a StaticViewConfig registered for the
|
|
56
|
+
* component name received as a parameter.
|
|
57
|
+
*/
|
|
58
|
+
export function unstable_hasStaticViewConfig(name: string): boolean;
|
|
59
|
+
|
|
60
|
+
type AttributeType<T, V> =
|
|
61
|
+
| true
|
|
62
|
+
| {
|
|
63
|
+
readonly diff?: ((arg1: T, arg2: T) => boolean) | undefined;
|
|
64
|
+
readonly process?: ((arg1: V) => T) | undefined;
|
|
65
|
+
};
|
|
66
|
+
type AnyAttributeType = AttributeType<any, any>;
|
|
67
|
+
type AttributeConfiguration = {
|
|
68
|
+
readonly [propName: string]: AnyAttributeType | void;
|
|
69
|
+
readonly style?:
|
|
70
|
+
| {
|
|
71
|
+
readonly [propName: string]: AnyAttributeType;
|
|
72
|
+
}
|
|
73
|
+
| undefined;
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
type PartialViewConfig = Readonly<{
|
|
77
|
+
bubblingEventTypes?:
|
|
78
|
+
| {
|
|
79
|
+
readonly [eventName: string]: {
|
|
80
|
+
readonly phasedRegistrationNames: {
|
|
81
|
+
readonly bubbled: string;
|
|
82
|
+
readonly captured: string;
|
|
83
|
+
readonly skipBubbling?: boolean | undefined;
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
| undefined;
|
|
88
|
+
directEventTypes?:
|
|
89
|
+
| {
|
|
90
|
+
readonly [eventName: string]: {
|
|
91
|
+
readonly registrationName: string;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
| undefined;
|
|
95
|
+
supportsRawText?: boolean | undefined;
|
|
96
|
+
uiViewClassName: string;
|
|
97
|
+
validAttributes?: AttributeConfiguration | undefined;
|
|
98
|
+
}>;
|
|
@@ -69,7 +69,7 @@ RCT_EXTERN_C_END
|
|
|
69
69
|
* will be used as the JS module name. If omitted, the JS module name will
|
|
70
70
|
* match the Objective-C class name.
|
|
71
71
|
*/
|
|
72
|
-
#ifndef
|
|
72
|
+
#ifndef RCT_DISABLE_STATIC_MODULE_REGISTRATION
|
|
73
73
|
#define RCT_EXPORT_MODULE(js_name) \
|
|
74
74
|
RCT_EXTERN void RCTRegisterModule(Class); \
|
|
75
75
|
+(NSString *)moduleName \
|
|
@@ -90,7 +90,7 @@ RCT_EXTERN_C_END
|
|
|
90
90
|
return @ #js_name; \
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
#endif //
|
|
93
|
+
#endif // RCT_DISABLE_STATIC_MODULE_REGISTRATION
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* Same as RCT_EXPORT_MODULE, but uses __attribute__((constructor)) for module
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(83),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251008-31bff4e09",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -382,6 +382,11 @@ static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_shouldP
|
|
|
382
382
|
rt
|
|
383
383
|
);
|
|
384
384
|
}
|
|
385
|
+
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_shouldTriggerResponderTransferOnScrollAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
386
|
+
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->shouldTriggerResponderTransferOnScrollAndroid(
|
|
387
|
+
rt
|
|
388
|
+
);
|
|
389
|
+
}
|
|
385
390
|
static jsi::Value __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_skipActivityIdentityAssertionOnHostPause(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
386
391
|
return static_cast<NativeReactNativeFeatureFlagsCxxSpecJSI *>(&turboModule)->skipActivityIdentityAssertionOnHostPause(
|
|
387
392
|
rt
|
|
@@ -535,6 +540,7 @@ NativeReactNativeFeatureFlagsCxxSpecJSI::NativeReactNativeFeatureFlagsCxxSpecJSI
|
|
|
535
540
|
methodMap_["preparedTextCacheSize"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_preparedTextCacheSize};
|
|
536
541
|
methodMap_["preventShadowTreeCommitExhaustion"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_preventShadowTreeCommitExhaustion};
|
|
537
542
|
methodMap_["shouldPressibilityUseW3CPointerEventsForHover"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_shouldPressibilityUseW3CPointerEventsForHover};
|
|
543
|
+
methodMap_["shouldTriggerResponderTransferOnScrollAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_shouldTriggerResponderTransferOnScrollAndroid};
|
|
538
544
|
methodMap_["skipActivityIdentityAssertionOnHostPause"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_skipActivityIdentityAssertionOnHostPause};
|
|
539
545
|
methodMap_["sweepActiveTouchOnChildNativeGesturesAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_sweepActiveTouchOnChildNativeGesturesAndroid};
|
|
540
546
|
methodMap_["traceTurboModulePromiseRejectionsOnAndroid"] = MethodMetadata {0, __hostFunction_NativeReactNativeFeatureFlagsCxxSpecJSI_traceTurboModulePromiseRejectionsOnAndroid};
|
|
@@ -386,6 +386,7 @@ public:
|
|
|
386
386
|
virtual double preparedTextCacheSize(jsi::Runtime &rt) = 0;
|
|
387
387
|
virtual bool preventShadowTreeCommitExhaustion(jsi::Runtime &rt) = 0;
|
|
388
388
|
virtual bool shouldPressibilityUseW3CPointerEventsForHover(jsi::Runtime &rt) = 0;
|
|
389
|
+
virtual bool shouldTriggerResponderTransferOnScrollAndroid(jsi::Runtime &rt) = 0;
|
|
389
390
|
virtual bool skipActivityIdentityAssertionOnHostPause(jsi::Runtime &rt) = 0;
|
|
390
391
|
virtual bool sweepActiveTouchOnChildNativeGesturesAndroid(jsi::Runtime &rt) = 0;
|
|
391
392
|
virtual bool traceTurboModulePromiseRejectionsOnAndroid(jsi::Runtime &rt) = 0;
|
|
@@ -914,6 +915,14 @@ private:
|
|
|
914
915
|
return bridging::callFromJs<bool>(
|
|
915
916
|
rt, &T::shouldPressibilityUseW3CPointerEventsForHover, jsInvoker_, instance_);
|
|
916
917
|
}
|
|
918
|
+
bool shouldTriggerResponderTransferOnScrollAndroid(jsi::Runtime &rt) override {
|
|
919
|
+
static_assert(
|
|
920
|
+
bridging::getParameterCount(&T::shouldTriggerResponderTransferOnScrollAndroid) == 1,
|
|
921
|
+
"Expected shouldTriggerResponderTransferOnScrollAndroid(...) to have 1 parameters");
|
|
922
|
+
|
|
923
|
+
return bridging::callFromJs<bool>(
|
|
924
|
+
rt, &T::shouldTriggerResponderTransferOnScrollAndroid, jsInvoker_, instance_);
|
|
925
|
+
}
|
|
917
926
|
bool skipActivityIdentityAssertionOnHostPause(jsi::Runtime &rt) override {
|
|
918
927
|
static_assert(
|
|
919
928
|
bridging::getParameterCount(&T::skipActivityIdentityAssertionOnHostPause) == 1,
|
|
@@ -299,7 +299,7 @@ static void RCTPerformMountInstructions(
|
|
|
299
299
|
SurfaceId surfaceId = RCTSurfaceIdForView(componentView);
|
|
300
300
|
Props::Shared oldProps = [componentView props];
|
|
301
301
|
Props::Shared newProps = componentDescriptor.cloneProps(
|
|
302
|
-
PropsParserContext{surfaceId, *_contextContainer
|
|
302
|
+
PropsParserContext{surfaceId, *_contextContainer}, oldProps, RawProps(std::move(props)));
|
|
303
303
|
|
|
304
304
|
NSSet<NSString *> *propKeys = componentView.propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN ?: [NSSet new];
|
|
305
305
|
propKeys = [propKeys setByAddingObjectsFromArray:propsKeysToBeUpdated];
|
|
@@ -5636,6 +5636,7 @@ public class com/facebook/react/views/scroll/ReactHorizontalScrollView : android
|
|
|
5636
5636
|
public fun setOverflowInset (IIII)V
|
|
5637
5637
|
public fun setPagingEnabled (Z)V
|
|
5638
5638
|
public fun setPointerEvents (Lcom/facebook/react/uimanager/PointerEvents;)V
|
|
5639
|
+
public fun setReactScrollViewScrollState (Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;)V
|
|
5639
5640
|
public fun setRemoveClippedSubviews (Z)V
|
|
5640
5641
|
public fun setScrollEnabled (Z)V
|
|
5641
5642
|
public fun setScrollEventThrottle (I)V
|
|
@@ -5775,8 +5776,10 @@ public class com/facebook/react/views/scroll/ReactScrollView : android/widget/Sc
|
|
|
5775
5776
|
public fun setOverflowInset (IIII)V
|
|
5776
5777
|
public fun setPagingEnabled (Z)V
|
|
5777
5778
|
public fun setPointerEvents (Lcom/facebook/react/uimanager/PointerEvents;)V
|
|
5779
|
+
public fun setReactScrollViewScrollState (Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;)V
|
|
5778
5780
|
public fun setRemoveClippedSubviews (Z)V
|
|
5779
5781
|
public fun setScrollAwayTopPaddingEnabledUnstable (I)V
|
|
5782
|
+
public fun setScrollAwayTopPaddingEnabledUnstable (IZ)V
|
|
5780
5783
|
public fun setScrollEnabled (Z)V
|
|
5781
5784
|
public fun setScrollEventThrottle (I)V
|
|
5782
5785
|
public fun setScrollPerfTag (Ljava/lang/String;)V
|
|
@@ -5879,6 +5882,7 @@ public abstract interface class com/facebook/react/views/scroll/ReactScrollViewH
|
|
|
5879
5882
|
|
|
5880
5883
|
public abstract interface class com/facebook/react/views/scroll/ReactScrollViewHelper$HasScrollState {
|
|
5881
5884
|
public abstract fun getReactScrollViewScrollState ()Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;
|
|
5885
|
+
public abstract fun setReactScrollViewScrollState (Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;)V
|
|
5882
5886
|
}
|
|
5883
5887
|
|
|
5884
5888
|
public abstract interface class com/facebook/react/views/scroll/ReactScrollViewHelper$HasSmoothScroll {
|
|
@@ -5896,18 +5900,34 @@ public abstract interface class com/facebook/react/views/scroll/ReactScrollViewH
|
|
|
5896
5900
|
|
|
5897
5901
|
public final class com/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState {
|
|
5898
5902
|
public fun <init> ()V
|
|
5903
|
+
public fun <init> (Landroid/graphics/Point;ILandroid/graphics/Point;ZZFZ)V
|
|
5904
|
+
public synthetic fun <init> (Landroid/graphics/Point;ILandroid/graphics/Point;ZZFZILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
|
5905
|
+
public final fun component1 ()Landroid/graphics/Point;
|
|
5906
|
+
public final fun component2 ()I
|
|
5907
|
+
public final fun component3 ()Landroid/graphics/Point;
|
|
5908
|
+
public final fun component4 ()Z
|
|
5909
|
+
public final fun component5 ()Z
|
|
5910
|
+
public final fun component6 ()F
|
|
5911
|
+
public final fun component7 ()Z
|
|
5912
|
+
public final fun copy (Landroid/graphics/Point;ILandroid/graphics/Point;ZZFZ)Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;
|
|
5913
|
+
public static synthetic fun copy$default (Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;Landroid/graphics/Point;ILandroid/graphics/Point;ZZFZILjava/lang/Object;)Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;
|
|
5914
|
+
public fun equals (Ljava/lang/Object;)Z
|
|
5899
5915
|
public final fun getDecelerationRate ()F
|
|
5900
5916
|
public final fun getFinalAnimatedPositionScroll ()Landroid/graphics/Point;
|
|
5901
5917
|
public final fun getLastStateUpdateScroll ()Landroid/graphics/Point;
|
|
5902
5918
|
public final fun getScrollAwayPaddingTop ()I
|
|
5919
|
+
public fun hashCode ()I
|
|
5903
5920
|
public final fun isCanceled ()Z
|
|
5904
5921
|
public final fun isFinished ()Z
|
|
5922
|
+
public final fun isUpdatedByScroll ()Z
|
|
5905
5923
|
public final fun setCanceled (Z)V
|
|
5906
5924
|
public final fun setDecelerationRate (F)V
|
|
5907
5925
|
public final fun setFinalAnimatedPositionScroll (II)Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;
|
|
5908
5926
|
public final fun setFinished (Z)V
|
|
5909
5927
|
public final fun setLastStateUpdateScroll (II)Lcom/facebook/react/views/scroll/ReactScrollViewHelper$ReactScrollViewScrollState;
|
|
5910
5928
|
public final fun setScrollAwayPaddingTop (I)V
|
|
5929
|
+
public final fun setUpdatedByScroll (Z)V
|
|
5930
|
+
public fun toString ()Ljava/lang/String;
|
|
5911
5931
|
}
|
|
5912
5932
|
|
|
5913
5933
|
public abstract interface class com/facebook/react/views/scroll/ReactScrollViewHelper$ScrollListener {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<4f9777b3b50f714214f9f0f86d5176f1>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -384,6 +384,12 @@ public object ReactNativeFeatureFlags {
|
|
|
384
384
|
@JvmStatic
|
|
385
385
|
public fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = accessor.shouldPressibilityUseW3CPointerEventsForHover()
|
|
386
386
|
|
|
387
|
+
/**
|
|
388
|
+
* Do not emit touchcancel from Android ScrollView, instead native topScroll event will trigger responder transfer and terminate in RN renderer.
|
|
389
|
+
*/
|
|
390
|
+
@JvmStatic
|
|
391
|
+
public fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean = accessor.shouldTriggerResponderTransferOnScrollAndroid()
|
|
392
|
+
|
|
387
393
|
/**
|
|
388
394
|
* Skip activity identity assertion in ReactHostImpl::onHostPause()
|
|
389
395
|
*/
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<7e45b713bab183402e93ee058ea7cb36>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -79,6 +79,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
79
79
|
private var preparedTextCacheSizeCache: Double? = null
|
|
80
80
|
private var preventShadowTreeCommitExhaustionCache: Boolean? = null
|
|
81
81
|
private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
|
|
82
|
+
private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
|
|
82
83
|
private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
|
|
83
84
|
private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
|
|
84
85
|
private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
|
|
@@ -629,6 +630,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
629
630
|
return cached
|
|
630
631
|
}
|
|
631
632
|
|
|
633
|
+
override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean {
|
|
634
|
+
var cached = shouldTriggerResponderTransferOnScrollAndroidCache
|
|
635
|
+
if (cached == null) {
|
|
636
|
+
cached = ReactNativeFeatureFlagsCxxInterop.shouldTriggerResponderTransferOnScrollAndroid()
|
|
637
|
+
shouldTriggerResponderTransferOnScrollAndroidCache = cached
|
|
638
|
+
}
|
|
639
|
+
return cached
|
|
640
|
+
}
|
|
641
|
+
|
|
632
642
|
override fun skipActivityIdentityAssertionOnHostPause(): Boolean {
|
|
633
643
|
var cached = skipActivityIdentityAssertionOnHostPauseCache
|
|
634
644
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<a8097e06e4ad0e329bd81fd6d23c031a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -146,6 +146,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
146
146
|
|
|
147
147
|
@DoNotStrip @JvmStatic public external fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
|
|
148
148
|
|
|
149
|
+
@DoNotStrip @JvmStatic public external fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
|
|
150
|
+
|
|
149
151
|
@DoNotStrip @JvmStatic public external fun skipActivityIdentityAssertionOnHostPause(): Boolean
|
|
150
152
|
|
|
151
153
|
@DoNotStrip @JvmStatic public external fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<c2e602217d9d88c23e958c8b73f22e5c>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -141,6 +141,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
141
141
|
|
|
142
142
|
override fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean = false
|
|
143
143
|
|
|
144
|
+
override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean = false
|
|
145
|
+
|
|
144
146
|
override fun skipActivityIdentityAssertionOnHostPause(): Boolean = false
|
|
145
147
|
|
|
146
148
|
override fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean = false
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<f88ede5a21467165ef04b5d16d869d1f>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -83,6 +83,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
83
83
|
private var preparedTextCacheSizeCache: Double? = null
|
|
84
84
|
private var preventShadowTreeCommitExhaustionCache: Boolean? = null
|
|
85
85
|
private var shouldPressibilityUseW3CPointerEventsForHoverCache: Boolean? = null
|
|
86
|
+
private var shouldTriggerResponderTransferOnScrollAndroidCache: Boolean? = null
|
|
86
87
|
private var skipActivityIdentityAssertionOnHostPauseCache: Boolean? = null
|
|
87
88
|
private var sweepActiveTouchOnChildNativeGesturesAndroidCache: Boolean? = null
|
|
88
89
|
private var traceTurboModulePromiseRejectionsOnAndroidCache: Boolean? = null
|
|
@@ -692,6 +693,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
692
693
|
return cached
|
|
693
694
|
}
|
|
694
695
|
|
|
696
|
+
override fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean {
|
|
697
|
+
var cached = shouldTriggerResponderTransferOnScrollAndroidCache
|
|
698
|
+
if (cached == null) {
|
|
699
|
+
cached = currentProvider.shouldTriggerResponderTransferOnScrollAndroid()
|
|
700
|
+
accessedFeatureFlags.add("shouldTriggerResponderTransferOnScrollAndroid")
|
|
701
|
+
shouldTriggerResponderTransferOnScrollAndroidCache = cached
|
|
702
|
+
}
|
|
703
|
+
return cached
|
|
704
|
+
}
|
|
705
|
+
|
|
695
706
|
override fun skipActivityIdentityAssertionOnHostPause(): Boolean {
|
|
696
707
|
var cached = skipActivityIdentityAssertionOnHostPauseCache
|
|
697
708
|
if (cached == null) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
|
-
* @generated SignedSource<<
|
|
7
|
+
* @generated SignedSource<<aa0e9e5830b13c4b290dcae42b757a3a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -141,6 +141,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
141
141
|
|
|
142
142
|
@DoNotStrip public fun shouldPressibilityUseW3CPointerEventsForHover(): Boolean
|
|
143
143
|
|
|
144
|
+
@DoNotStrip public fun shouldTriggerResponderTransferOnScrollAndroid(): Boolean
|
|
145
|
+
|
|
144
146
|
@DoNotStrip public fun skipActivityIdentityAssertionOnHostPause(): Boolean
|
|
145
147
|
|
|
146
148
|
@DoNotStrip public fun sweepActiveTouchOnChildNativeGesturesAndroid(): Boolean
|
|
@@ -126,7 +126,7 @@ internal class BridgelessReactContext(context: Context, private val reactHost: R
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
override fun <T : JavaScriptModule> getJSModule(jsInterface: Class<T>): T? {
|
|
129
|
-
mInteropModuleRegistry?.getInteropModule(jsInterface)?.let {
|
|
129
|
+
mInteropModuleRegistry?.getInteropModule(jsInterface)?.let { interopModule ->
|
|
130
130
|
if (jsInterface == RCTEventEmitter::class.java) {
|
|
131
131
|
logSoftException(
|
|
132
132
|
TAG,
|
|
@@ -135,7 +135,7 @@ internal class BridgelessReactContext(context: Context, private val reactHost: R
|
|
|
135
135
|
),
|
|
136
136
|
)
|
|
137
137
|
}
|
|
138
|
-
return
|
|
138
|
+
return interopModule
|
|
139
139
|
}
|
|
140
140
|
|
|
141
141
|
// TODO T189052462: ReactContext caches JavaScriptModule instances
|
package/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollView.java
CHANGED
|
@@ -18,6 +18,7 @@ import android.animation.ValueAnimator;
|
|
|
18
18
|
import android.content.Context;
|
|
19
19
|
import android.graphics.Canvas;
|
|
20
20
|
import android.graphics.Color;
|
|
21
|
+
import android.graphics.Point;
|
|
21
22
|
import android.graphics.Rect;
|
|
22
23
|
import android.graphics.drawable.ColorDrawable;
|
|
23
24
|
import android.graphics.drawable.Drawable;
|
|
@@ -1649,6 +1650,15 @@ public class ReactHorizontalScrollView extends HorizontalScrollView
|
|
|
1649
1650
|
mStateWrapper = stateWrapper;
|
|
1650
1651
|
}
|
|
1651
1652
|
|
|
1653
|
+
@Override
|
|
1654
|
+
public void setReactScrollViewScrollState(ReactScrollViewScrollState scrollState) {
|
|
1655
|
+
mReactScrollViewScrollState = scrollState;
|
|
1656
|
+
if (ReactNativeFeatureFlags.enableViewCulling()) {
|
|
1657
|
+
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1658
|
+
scrollTo(scrollPosition.x, scrollPosition.y);
|
|
1659
|
+
}
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1652
1662
|
@Override
|
|
1653
1663
|
public ReactScrollViewScrollState getReactScrollViewScrollState() {
|
|
1654
1664
|
return mReactScrollViewScrollState;
|
|
@@ -85,6 +85,9 @@ constructor(private val fpsListener: FpsListener? = null) :
|
|
|
85
85
|
stateWrapper: StateWrapper,
|
|
86
86
|
): Any? {
|
|
87
87
|
view.setStateWrapper(stateWrapper)
|
|
88
|
+
if (ReactNativeFeatureFlags.enableViewCulling()) {
|
|
89
|
+
ReactScrollViewHelper.loadFabricScrollState(view, stateWrapper)
|
|
90
|
+
}
|
|
88
91
|
return null
|
|
89
92
|
}
|
|
90
93
|
|
|
@@ -18,6 +18,7 @@ import android.animation.ValueAnimator;
|
|
|
18
18
|
import android.content.Context;
|
|
19
19
|
import android.graphics.Canvas;
|
|
20
20
|
import android.graphics.Color;
|
|
21
|
+
import android.graphics.Point;
|
|
21
22
|
import android.graphics.Rect;
|
|
22
23
|
import android.graphics.drawable.ColorDrawable;
|
|
23
24
|
import android.graphics.drawable.Drawable;
|
|
@@ -1439,6 +1440,10 @@ public class ReactScrollView extends ScrollView
|
|
|
1439
1440
|
* style. `translateY` must never be set from ReactJS while using this feature!
|
|
1440
1441
|
*/
|
|
1441
1442
|
public void setScrollAwayTopPaddingEnabledUnstable(int topPadding) {
|
|
1443
|
+
setScrollAwayTopPaddingEnabledUnstable(topPadding, true);
|
|
1444
|
+
}
|
|
1445
|
+
|
|
1446
|
+
public void setScrollAwayTopPaddingEnabledUnstable(int topPadding, boolean updateState) {
|
|
1442
1447
|
int count = getChildCount();
|
|
1443
1448
|
|
|
1444
1449
|
Assertions.assertCondition(
|
|
@@ -1458,7 +1463,9 @@ public class ReactScrollView extends ScrollView
|
|
|
1458
1463
|
setPadding(0, 0, 0, topPadding);
|
|
1459
1464
|
}
|
|
1460
1465
|
|
|
1461
|
-
|
|
1466
|
+
if (updateState) {
|
|
1467
|
+
updateScrollAwayState(topPadding);
|
|
1468
|
+
}
|
|
1462
1469
|
setRemoveClippedSubviews(mRemoveClippedSubviews);
|
|
1463
1470
|
}
|
|
1464
1471
|
|
|
@@ -1467,6 +1474,17 @@ public class ReactScrollView extends ScrollView
|
|
|
1467
1474
|
ReactScrollViewHelper.forceUpdateState(this);
|
|
1468
1475
|
}
|
|
1469
1476
|
|
|
1477
|
+
@Override
|
|
1478
|
+
public void setReactScrollViewScrollState(ReactScrollViewScrollState scrollState) {
|
|
1479
|
+
mReactScrollViewScrollState = scrollState;
|
|
1480
|
+
if (ReactNativeFeatureFlags.enableViewCulling()) {
|
|
1481
|
+
setScrollAwayTopPaddingEnabledUnstable(scrollState.getScrollAwayPaddingTop(), false);
|
|
1482
|
+
|
|
1483
|
+
Point scrollPosition = scrollState.getLastStateUpdateScroll();
|
|
1484
|
+
scrollTo(scrollPosition.x, scrollPosition.y);
|
|
1485
|
+
}
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1470
1488
|
@Override
|
|
1471
1489
|
public ReactScrollViewScrollState getReactScrollViewScrollState() {
|
|
1472
1490
|
return mReactScrollViewScrollState;
|