react-native 0.84.0-nightly-20251111-4f490818a → 0.84.0-nightly-20251112-7dcedf1de
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/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Text/Text.js +42 -2
- package/React/Base/RCTVersion.m +1 -1
- package/React/FBReactNativeSpec/FBReactNativeSpecJSI.h +8 -0
- package/React/Fabric/Mounting/ComponentViews/View/RCTViewComponentView.mm +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/uimanager/BackgroundStyleApplicator.kt +1 -1
- 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/react/featureflags/ReactNativeFeatureFlags.cpp +5 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlags.h +6 -1
- package/ReactCommon/react/featureflags/ReactNativeFeatureFlagsAccessor.cpp +75 -57
- 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 +6 -1
- package/ReactCommon/react/nativemodule/featureflags/NativeReactNativeFeatureFlags.h +3 -1
- package/package.json +8 -8
- package/scripts/cocoapods/spm.rb +28 -10
- package/sdks/hermes-engine/hermes-utils.rb +14 -10
- package/src/private/featureflags/ReactNativeFeatureFlags.js +12 -1
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +2 -1
|
@@ -29,7 +29,7 @@ export default class ReactNativeVersion {
|
|
|
29
29
|
static major: number = 0;
|
|
30
30
|
static minor: number = 84;
|
|
31
31
|
static patch: number = 0;
|
|
32
|
-
static prerelease: string | null = 'nightly-
|
|
32
|
+
static prerelease: string | null = 'nightly-20251112-7dcedf1de';
|
|
33
33
|
|
|
34
34
|
static getVersionString(): string {
|
|
35
35
|
return `${this.major}.${this.minor}.${this.patch}${this.prerelease != null ? `-${this.prerelease}` : ''}`;
|
package/Libraries/Text/Text.js
CHANGED
|
@@ -45,6 +45,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
45
45
|
ref: forwardedRef,
|
|
46
46
|
accessible,
|
|
47
47
|
accessibilityLabel,
|
|
48
|
+
accessibilityRole,
|
|
48
49
|
accessibilityState,
|
|
49
50
|
allowFontScaling,
|
|
50
51
|
'aria-busy': ariaBusy,
|
|
@@ -71,6 +72,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
71
72
|
onResponderTerminationRequest,
|
|
72
73
|
onStartShouldSetResponder,
|
|
73
74
|
pressRetentionOffset,
|
|
75
|
+
role,
|
|
74
76
|
selectable,
|
|
75
77
|
selectionColor,
|
|
76
78
|
suppressHighlighting,
|
|
@@ -149,6 +151,17 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
149
151
|
onStartShouldSetResponder != null) &&
|
|
150
152
|
_disabled !== true;
|
|
151
153
|
|
|
154
|
+
const shouldUseLinkRole =
|
|
155
|
+
ReactNativeFeatureFlags.shouldUseLinkRoleForPressableText() &&
|
|
156
|
+
isPressable &&
|
|
157
|
+
accessibilityRole == null &&
|
|
158
|
+
role == null;
|
|
159
|
+
|
|
160
|
+
const _accessibilityRole =
|
|
161
|
+
accessibilityRole ?? (shouldUseLinkRole ? 'link' : undefined);
|
|
162
|
+
|
|
163
|
+
const _role = shouldUseLinkRole ? undefined : role;
|
|
164
|
+
|
|
152
165
|
// TODO: Move this processing to the view configuration.
|
|
153
166
|
const _selectionColor =
|
|
154
167
|
selectionColor != null ? processColor(selectionColor) : undefined;
|
|
@@ -206,6 +219,9 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
206
219
|
if (_accessibilityLabel !== undefined) {
|
|
207
220
|
processedProps.accessibilityLabel = _accessibilityLabel;
|
|
208
221
|
}
|
|
222
|
+
if (_accessibilityRole !== undefined) {
|
|
223
|
+
processedProps.accessibilityRole = _accessibilityRole;
|
|
224
|
+
}
|
|
209
225
|
if (_accessibilityState !== undefined) {
|
|
210
226
|
processedProps.accessibilityState = _accessibilityState;
|
|
211
227
|
}
|
|
@@ -224,6 +240,9 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
224
240
|
if (_selectionColor !== undefined) {
|
|
225
241
|
processedProps.selectionColor = _selectionColor;
|
|
226
242
|
}
|
|
243
|
+
if (_role !== undefined) {
|
|
244
|
+
processedProps.role = _role;
|
|
245
|
+
}
|
|
227
246
|
|
|
228
247
|
let textPressabilityProps: ?TextPressabilityProps;
|
|
229
248
|
if (isPressable) {
|
|
@@ -317,6 +336,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
317
336
|
accessibilityElementsHidden,
|
|
318
337
|
importantForAccessibility,
|
|
319
338
|
accessibilityLabel,
|
|
339
|
+
accessibilityRole,
|
|
320
340
|
accessibilityState,
|
|
321
341
|
allowFontScaling,
|
|
322
342
|
'aria-busy': ariaBusy,
|
|
@@ -343,6 +363,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
343
363
|
onResponderTerminationRequest,
|
|
344
364
|
onStartShouldSetResponder,
|
|
345
365
|
pressRetentionOffset,
|
|
366
|
+
role,
|
|
346
367
|
selectable,
|
|
347
368
|
selectionColor,
|
|
348
369
|
suppressHighlighting,
|
|
@@ -398,6 +419,17 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
398
419
|
onStartShouldSetResponder != null) &&
|
|
399
420
|
_disabled !== true;
|
|
400
421
|
|
|
422
|
+
const shouldUseLinkRole =
|
|
423
|
+
ReactNativeFeatureFlags.shouldUseLinkRoleForPressableText() &&
|
|
424
|
+
isPressable &&
|
|
425
|
+
accessibilityRole == null &&
|
|
426
|
+
role == null;
|
|
427
|
+
|
|
428
|
+
const _accessibilityRole =
|
|
429
|
+
accessibilityRole ?? (shouldUseLinkRole ? 'link' : undefined);
|
|
430
|
+
|
|
431
|
+
const _role = shouldUseLinkRole ? undefined : role;
|
|
432
|
+
|
|
401
433
|
// TODO: Move this processing to the view configuration.
|
|
402
434
|
const _selectionColor =
|
|
403
435
|
selectionColor != null ? processColor(selectionColor) : undefined;
|
|
@@ -462,6 +494,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
462
494
|
...restProps,
|
|
463
495
|
accessibilityElementsHidden: _accessibilityElementsHidden,
|
|
464
496
|
accessibilityLabel: _accessibilityLabel,
|
|
497
|
+
accessibilityRole: _accessibilityRole,
|
|
465
498
|
accessibilityState: _accessibilityState,
|
|
466
499
|
importantForAccessibility: _importantForAccessibility,
|
|
467
500
|
nativeID: _nativeID,
|
|
@@ -470,6 +503,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
470
503
|
selectionColor: _selectionColor,
|
|
471
504
|
style: _style,
|
|
472
505
|
disabled: disabled,
|
|
506
|
+
role: _role,
|
|
473
507
|
children,
|
|
474
508
|
}}
|
|
475
509
|
textPressabilityProps={{
|
|
@@ -495,6 +529,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
495
529
|
{...restProps}
|
|
496
530
|
accessibilityElementsHidden={_accessibilityElementsHidden}
|
|
497
531
|
accessibilityLabel={_accessibilityLabel}
|
|
532
|
+
accessibilityRole={_accessibilityRole}
|
|
498
533
|
accessibilityState={_accessibilityState}
|
|
499
534
|
importantForAccessibility={_importantForAccessibility}
|
|
500
535
|
nativeID={_nativeID}
|
|
@@ -503,7 +538,8 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
503
538
|
selectable={_selectable}
|
|
504
539
|
selectionColor={_selectionColor}
|
|
505
540
|
style={_style}
|
|
506
|
-
disabled={disabled}
|
|
541
|
+
disabled={disabled}
|
|
542
|
+
role={_role}>
|
|
507
543
|
{children}
|
|
508
544
|
</NativeVirtualText>
|
|
509
545
|
);
|
|
@@ -538,6 +574,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
538
574
|
...restProps,
|
|
539
575
|
accessibilityElementsHidden: _accessibilityElementsHidden,
|
|
540
576
|
accessibilityLabel: _accessibilityLabel,
|
|
577
|
+
accessibilityRole: _accessibilityRole,
|
|
541
578
|
accessibilityState: _accessibilityState,
|
|
542
579
|
accessible: _accessible,
|
|
543
580
|
allowFontScaling: allowFontScaling !== false,
|
|
@@ -549,6 +586,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
549
586
|
selectable: _selectable,
|
|
550
587
|
selectionColor: _selectionColor,
|
|
551
588
|
style: _style,
|
|
589
|
+
role: _role,
|
|
552
590
|
children,
|
|
553
591
|
}}
|
|
554
592
|
textPressabilityProps={{
|
|
@@ -573,6 +611,7 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
573
611
|
{...restProps}
|
|
574
612
|
accessibilityElementsHidden={_accessibilityElementsHidden}
|
|
575
613
|
accessibilityLabel={_accessibilityLabel}
|
|
614
|
+
accessibilityRole={_accessibilityRole}
|
|
576
615
|
accessibilityState={_accessibilityState}
|
|
577
616
|
accessible={_accessible}
|
|
578
617
|
allowFontScaling={allowFontScaling !== false}
|
|
@@ -584,7 +623,8 @@ if (ReactNativeFeatureFlags.reduceDefaultPropsInText()) {
|
|
|
584
623
|
ref={forwardedRef}
|
|
585
624
|
selectable={_selectable}
|
|
586
625
|
selectionColor={_selectionColor}
|
|
587
|
-
style={_style}
|
|
626
|
+
style={_style}
|
|
627
|
+
role={_role}>
|
|
588
628
|
{children}
|
|
589
629
|
</NativeText>
|
|
590
630
|
);
|
package/React/Base/RCTVersion.m
CHANGED
|
@@ -24,7 +24,7 @@ NSDictionary* RCTGetReactNativeVersion(void)
|
|
|
24
24
|
RCTVersionMajor: @(0),
|
|
25
25
|
RCTVersionMinor: @(84),
|
|
26
26
|
RCTVersionPatch: @(0),
|
|
27
|
-
RCTVersionPrerelease: @"nightly-
|
|
27
|
+
RCTVersionPrerelease: @"nightly-20251112-7dcedf1de",
|
|
28
28
|
};
|
|
29
29
|
});
|
|
30
30
|
return __rnVersion;
|
|
@@ -253,6 +253,7 @@ protected:
|
|
|
253
253
|
methodMap_["enableIOSTextBaselineOffsetPerLine"] = MethodMetadata {.argCount = 0, .invoker = __enableIOSTextBaselineOffsetPerLine};
|
|
254
254
|
methodMap_["enableIOSViewClipToPaddingBox"] = MethodMetadata {.argCount = 0, .invoker = __enableIOSViewClipToPaddingBox};
|
|
255
255
|
methodMap_["enableImagePrefetchingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableImagePrefetchingAndroid};
|
|
256
|
+
methodMap_["enableImagePrefetchingJNIBatchingAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableImagePrefetchingJNIBatchingAndroid};
|
|
256
257
|
methodMap_["enableImagePrefetchingOnUiThreadAndroid"] = MethodMetadata {.argCount = 0, .invoker = __enableImagePrefetchingOnUiThreadAndroid};
|
|
257
258
|
methodMap_["enableImmediateUpdateModeForContentOffsetChanges"] = MethodMetadata {.argCount = 0, .invoker = __enableImmediateUpdateModeForContentOffsetChanges};
|
|
258
259
|
methodMap_["enableImperativeFocus"] = MethodMetadata {.argCount = 0, .invoker = __enableImperativeFocus};
|
|
@@ -522,6 +523,13 @@ private:
|
|
|
522
523
|
return bridging::callFromJs<bool>(rt, &T::enableImagePrefetchingAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
523
524
|
}
|
|
524
525
|
|
|
526
|
+
static jsi::Value __enableImagePrefetchingJNIBatchingAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
527
|
+
static_assert(
|
|
528
|
+
bridging::getParameterCount(&T::enableImagePrefetchingJNIBatchingAndroid) == 1,
|
|
529
|
+
"Expected enableImagePrefetchingJNIBatchingAndroid(...) to have 1 parameters");
|
|
530
|
+
return bridging::callFromJs<bool>(rt, &T::enableImagePrefetchingJNIBatchingAndroid, static_cast<NativeReactNativeFeatureFlagsCxxSpec*>(&turboModule)->jsInvoker_, static_cast<T*>(&turboModule));
|
|
531
|
+
}
|
|
532
|
+
|
|
525
533
|
static jsi::Value __enableImagePrefetchingOnUiThreadAndroid(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* /*args*/, size_t /*count*/) {
|
|
526
534
|
static_assert(
|
|
527
535
|
bridging::getParameterCount(&T::enableImagePrefetchingOnUiThreadAndroid) == 1,
|
|
@@ -623,6 +623,26 @@ const CGFloat BACKGROUND_COLOR_ZPOSITION = -1024.0f;
|
|
|
623
623
|
self.layer.opacity = (float)props.opacity;
|
|
624
624
|
}
|
|
625
625
|
|
|
626
|
+
// Clean up box shadow layers to prevent cross-component contamination
|
|
627
|
+
if (_boxShadowLayers != nullptr) {
|
|
628
|
+
for (CALayer *boxShadowLayer = nullptr in _boxShadowLayers) {
|
|
629
|
+
[boxShadowLayer removeFromSuperlayer];
|
|
630
|
+
}
|
|
631
|
+
[_boxShadowLayers removeAllObjects];
|
|
632
|
+
_boxShadowLayers = nil;
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
// Clean up other visual layers
|
|
636
|
+
[_backgroundColorLayer removeFromSuperlayer];
|
|
637
|
+
_backgroundColorLayer = nil;
|
|
638
|
+
[_borderLayer removeFromSuperlayer];
|
|
639
|
+
_borderLayer = nil;
|
|
640
|
+
[_outlineLayer removeFromSuperlayer];
|
|
641
|
+
_outlineLayer = nil;
|
|
642
|
+
[_filterLayer removeFromSuperlayer];
|
|
643
|
+
_filterLayer = nil;
|
|
644
|
+
[self clearExistingBackgroundImageLayers];
|
|
645
|
+
|
|
626
646
|
_propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN = nil;
|
|
627
647
|
_eventEmitter.reset();
|
|
628
648
|
_isJSResponder = NO;
|
|
@@ -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<<a9af5f83c6e958cf170cd77f69e85ef0>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -204,6 +204,12 @@ public object ReactNativeFeatureFlags {
|
|
|
204
204
|
@JvmStatic
|
|
205
205
|
public fun enableImagePrefetchingAndroid(): Boolean = accessor.enableImagePrefetchingAndroid()
|
|
206
206
|
|
|
207
|
+
/**
|
|
208
|
+
* When enabled, Android will build and initiate image prefetch requests on ImageShadowNode::layout and batch them together in a single JNI call
|
|
209
|
+
*/
|
|
210
|
+
@JvmStatic
|
|
211
|
+
public fun enableImagePrefetchingJNIBatchingAndroid(): Boolean = accessor.enableImagePrefetchingJNIBatchingAndroid()
|
|
212
|
+
|
|
207
213
|
/**
|
|
208
214
|
* When enabled, Android will initiate image prefetch requested on ImageShadowNode::layout on the UI thread
|
|
209
215
|
*/
|
|
@@ -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<<3b95ad320a62bf77d5090436f457d87a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -49,6 +49,7 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
49
49
|
private var enableIOSTextBaselineOffsetPerLineCache: Boolean? = null
|
|
50
50
|
private var enableIOSViewClipToPaddingBoxCache: Boolean? = null
|
|
51
51
|
private var enableImagePrefetchingAndroidCache: Boolean? = null
|
|
52
|
+
private var enableImagePrefetchingJNIBatchingAndroidCache: Boolean? = null
|
|
52
53
|
private var enableImagePrefetchingOnUiThreadAndroidCache: Boolean? = null
|
|
53
54
|
private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
|
|
54
55
|
private var enableImperativeFocusCache: Boolean? = null
|
|
@@ -367,6 +368,15 @@ internal class ReactNativeFeatureFlagsCxxAccessor : ReactNativeFeatureFlagsAcces
|
|
|
367
368
|
return cached
|
|
368
369
|
}
|
|
369
370
|
|
|
371
|
+
override fun enableImagePrefetchingJNIBatchingAndroid(): Boolean {
|
|
372
|
+
var cached = enableImagePrefetchingJNIBatchingAndroidCache
|
|
373
|
+
if (cached == null) {
|
|
374
|
+
cached = ReactNativeFeatureFlagsCxxInterop.enableImagePrefetchingJNIBatchingAndroid()
|
|
375
|
+
enableImagePrefetchingJNIBatchingAndroidCache = cached
|
|
376
|
+
}
|
|
377
|
+
return cached
|
|
378
|
+
}
|
|
379
|
+
|
|
370
380
|
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean {
|
|
371
381
|
var cached = enableImagePrefetchingOnUiThreadAndroidCache
|
|
372
382
|
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<<ba3df1f078a7f5f10dced908ef1d170a>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -86,6 +86,8 @@ public object ReactNativeFeatureFlagsCxxInterop {
|
|
|
86
86
|
|
|
87
87
|
@DoNotStrip @JvmStatic public external fun enableImagePrefetchingAndroid(): Boolean
|
|
88
88
|
|
|
89
|
+
@DoNotStrip @JvmStatic public external fun enableImagePrefetchingJNIBatchingAndroid(): Boolean
|
|
90
|
+
|
|
89
91
|
@DoNotStrip @JvmStatic public external fun enableImagePrefetchingOnUiThreadAndroid(): Boolean
|
|
90
92
|
|
|
91
93
|
@DoNotStrip @JvmStatic public external fun enableImmediateUpdateModeForContentOffsetChanges(): 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<<e5c3f111e00075dac0a6e594ce622ca7>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -81,6 +81,8 @@ public open class ReactNativeFeatureFlagsDefaults : ReactNativeFeatureFlagsProvi
|
|
|
81
81
|
|
|
82
82
|
override fun enableImagePrefetchingAndroid(): Boolean = false
|
|
83
83
|
|
|
84
|
+
override fun enableImagePrefetchingJNIBatchingAndroid(): Boolean = false
|
|
85
|
+
|
|
84
86
|
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean = false
|
|
85
87
|
|
|
86
88
|
override fun enableImmediateUpdateModeForContentOffsetChanges(): 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<<f484a05ce73cdf166d785560dca0536b>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -53,6 +53,7 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
53
53
|
private var enableIOSTextBaselineOffsetPerLineCache: Boolean? = null
|
|
54
54
|
private var enableIOSViewClipToPaddingBoxCache: Boolean? = null
|
|
55
55
|
private var enableImagePrefetchingAndroidCache: Boolean? = null
|
|
56
|
+
private var enableImagePrefetchingJNIBatchingAndroidCache: Boolean? = null
|
|
56
57
|
private var enableImagePrefetchingOnUiThreadAndroidCache: Boolean? = null
|
|
57
58
|
private var enableImmediateUpdateModeForContentOffsetChangesCache: Boolean? = null
|
|
58
59
|
private var enableImperativeFocusCache: Boolean? = null
|
|
@@ -400,6 +401,16 @@ internal class ReactNativeFeatureFlagsLocalAccessor : ReactNativeFeatureFlagsAcc
|
|
|
400
401
|
return cached
|
|
401
402
|
}
|
|
402
403
|
|
|
404
|
+
override fun enableImagePrefetchingJNIBatchingAndroid(): Boolean {
|
|
405
|
+
var cached = enableImagePrefetchingJNIBatchingAndroidCache
|
|
406
|
+
if (cached == null) {
|
|
407
|
+
cached = currentProvider.enableImagePrefetchingJNIBatchingAndroid()
|
|
408
|
+
accessedFeatureFlags.add("enableImagePrefetchingJNIBatchingAndroid")
|
|
409
|
+
enableImagePrefetchingJNIBatchingAndroidCache = cached
|
|
410
|
+
}
|
|
411
|
+
return cached
|
|
412
|
+
}
|
|
413
|
+
|
|
403
414
|
override fun enableImagePrefetchingOnUiThreadAndroid(): Boolean {
|
|
404
415
|
var cached = enableImagePrefetchingOnUiThreadAndroidCache
|
|
405
416
|
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<<a2bdf7bbb1c18dbcdd4ea424362d3e9d>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -81,6 +81,8 @@ public interface ReactNativeFeatureFlagsProvider {
|
|
|
81
81
|
|
|
82
82
|
@DoNotStrip public fun enableImagePrefetchingAndroid(): Boolean
|
|
83
83
|
|
|
84
|
+
@DoNotStrip public fun enableImagePrefetchingJNIBatchingAndroid(): Boolean
|
|
85
|
+
|
|
84
86
|
@DoNotStrip public fun enableImagePrefetchingOnUiThreadAndroid(): Boolean
|
|
85
87
|
|
|
86
88
|
@DoNotStrip public fun enableImmediateUpdateModeForContentOffsetChanges(): Boolean
|
package/ReactAndroid/src/main/java/com/facebook/react/uimanager/BackgroundStyleApplicator.kt
CHANGED
|
@@ -467,7 +467,7 @@ public object BackgroundStyleApplicator {
|
|
|
467
467
|
*/
|
|
468
468
|
@JvmStatic
|
|
469
469
|
public fun setFeedbackUnderlay(view: View, drawable: Drawable?) {
|
|
470
|
-
ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
470
|
+
view.background = ensureCompositeBackgroundDrawable(view).withNewFeedbackUnderlay(drawable)
|
|
471
471
|
}
|
|
472
472
|
|
|
473
473
|
/**
|
|
@@ -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<<4c9dda599d2c1467fb1602f71c7c7a54>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -213,6 +213,12 @@ class ReactNativeFeatureFlagsJavaProvider
|
|
|
213
213
|
return method(javaProvider_);
|
|
214
214
|
}
|
|
215
215
|
|
|
216
|
+
bool enableImagePrefetchingJNIBatchingAndroid() override {
|
|
217
|
+
static const auto method =
|
|
218
|
+
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableImagePrefetchingJNIBatchingAndroid");
|
|
219
|
+
return method(javaProvider_);
|
|
220
|
+
}
|
|
221
|
+
|
|
216
222
|
bool enableImagePrefetchingOnUiThreadAndroid() override {
|
|
217
223
|
static const auto method =
|
|
218
224
|
getReactNativeFeatureFlagsProviderJavaClass()->getMethod<jboolean()>("enableImagePrefetchingOnUiThreadAndroid");
|
|
@@ -698,6 +704,11 @@ bool JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingAndroid(
|
|
|
698
704
|
return ReactNativeFeatureFlags::enableImagePrefetchingAndroid();
|
|
699
705
|
}
|
|
700
706
|
|
|
707
|
+
bool JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingJNIBatchingAndroid(
|
|
708
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
709
|
+
return ReactNativeFeatureFlags::enableImagePrefetchingJNIBatchingAndroid();
|
|
710
|
+
}
|
|
711
|
+
|
|
701
712
|
bool JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingOnUiThreadAndroid(
|
|
702
713
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop> /*unused*/) {
|
|
703
714
|
return ReactNativeFeatureFlags::enableImagePrefetchingOnUiThreadAndroid();
|
|
@@ -1096,6 +1107,9 @@ void JReactNativeFeatureFlagsCxxInterop::registerNatives() {
|
|
|
1096
1107
|
makeNativeMethod(
|
|
1097
1108
|
"enableImagePrefetchingAndroid",
|
|
1098
1109
|
JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingAndroid),
|
|
1110
|
+
makeNativeMethod(
|
|
1111
|
+
"enableImagePrefetchingJNIBatchingAndroid",
|
|
1112
|
+
JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingJNIBatchingAndroid),
|
|
1099
1113
|
makeNativeMethod(
|
|
1100
1114
|
"enableImagePrefetchingOnUiThreadAndroid",
|
|
1101
1115
|
JReactNativeFeatureFlagsCxxInterop::enableImagePrefetchingOnUiThreadAndroid),
|
|
@@ -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<<7a72ab75c6e155769bf583cc8cac6a66>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -117,6 +117,9 @@ class JReactNativeFeatureFlagsCxxInterop
|
|
|
117
117
|
static bool enableImagePrefetchingAndroid(
|
|
118
118
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
119
119
|
|
|
120
|
+
static bool enableImagePrefetchingJNIBatchingAndroid(
|
|
121
|
+
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
122
|
+
|
|
120
123
|
static bool enableImagePrefetchingOnUiThreadAndroid(
|
|
121
124
|
facebook::jni::alias_ref<JReactNativeFeatureFlagsCxxInterop>);
|
|
122
125
|
|
|
@@ -22,7 +22,7 @@ constexpr struct {
|
|
|
22
22
|
int32_t Major = 0;
|
|
23
23
|
int32_t Minor = 84;
|
|
24
24
|
int32_t Patch = 0;
|
|
25
|
-
std::string_view Prerelease = "nightly-
|
|
25
|
+
std::string_view Prerelease = "nightly-20251112-7dcedf1de";
|
|
26
26
|
} ReactNativeVersion;
|
|
27
27
|
|
|
28
28
|
} // namespace facebook::react
|
|
@@ -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<<c4020a265f61714560e6742482cc05ab>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -142,6 +142,10 @@ bool ReactNativeFeatureFlags::enableImagePrefetchingAndroid() {
|
|
|
142
142
|
return getAccessor().enableImagePrefetchingAndroid();
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
+
bool ReactNativeFeatureFlags::enableImagePrefetchingJNIBatchingAndroid() {
|
|
146
|
+
return getAccessor().enableImagePrefetchingJNIBatchingAndroid();
|
|
147
|
+
}
|
|
148
|
+
|
|
145
149
|
bool ReactNativeFeatureFlags::enableImagePrefetchingOnUiThreadAndroid() {
|
|
146
150
|
return getAccessor().enableImagePrefetchingOnUiThreadAndroid();
|
|
147
151
|
}
|
|
@@ -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<<972740252a5ef5f89f739599da789b79>>
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -184,6 +184,11 @@ class ReactNativeFeatureFlags {
|
|
|
184
184
|
*/
|
|
185
185
|
RN_EXPORT static bool enableImagePrefetchingAndroid();
|
|
186
186
|
|
|
187
|
+
/**
|
|
188
|
+
* When enabled, Android will build and initiate image prefetch requests on ImageShadowNode::layout and batch them together in a single JNI call
|
|
189
|
+
*/
|
|
190
|
+
RN_EXPORT static bool enableImagePrefetchingJNIBatchingAndroid();
|
|
191
|
+
|
|
187
192
|
/**
|
|
188
193
|
* When enabled, Android will initiate image prefetch requested on ImageShadowNode::layout on the UI thread
|
|
189
194
|
*/
|