Skip to content

Commit 24c182a

Browse files
committed
manually patching the prefab-headers avoid the app from triggering a runtime error
facebook#35130 (comment) facebook#35130 (comment) facebook#35130 (comment)
1 parent 95d6d3b commit 24c182a

20 files changed

+122
-7
lines changed

Libraries/Components/View/ReactNativeViewAttributes.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ const UIView = {
1919
accessibilityLiveRegion: true,
2020
accessibilityRole: true,
2121
accessibilityState: true,
22+
accessibilityUnit: true,
2223
accessibilityValue: true,
2324
accessibilityHint: true,
2425
accessibilityLanguage: true,

Libraries/Components/View/View.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ const View: React.AbstractComponent<
3737
accessibilityLiveRegion,
3838
accessibilityRole,
3939
accessibilityState,
40+
accessibilityUnit,
4041
accessibilityValue,
4142
'aria-busy': ariaBusy,
4243
'aria-checked': ariaChecked,

Libraries/Components/View/ViewAccessibility.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export interface AccessibilityProps
4646
* Accessibility State tells a person using either VoiceOver on iOS or TalkBack on Android the state of the element currently focused on.
4747
*/
4848
accessibilityState?: AccessibilityState | undefined;
49+
accessibilityUnit?: AccessibilityUnit | undefined;
4950

5051
/**
5152
* alias for accessibilityState

Libraries/Components/View/ViewAccessibility.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ export type AccessibilityRole =
1818
| 'button'
1919
| 'togglebutton'
2020
| 'link'
21-
| 'verbatim'
2221
| 'cardinal'
2322
| 'ordinal'
2423
| 'decimal'
@@ -150,6 +149,10 @@ export type AccessibilityState = {
150149
...
151150
};
152151

152+
export type AccessibilityUnit = {
153+
hours?: number,
154+
};
155+
153156
export type AccessibilityValue = $ReadOnly<{|
154157
/**
155158
* The minimum value of this component's range. (should be an integer)

Libraries/Components/View/ViewPropTypes.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import type {
2727
AccessibilityRole,
2828
AccessibilityState,
2929
AccessibilityValue,
30+
AccessibilityUnit,
3031
Role,
3132
} from './ViewAccessibility';
3233
import type {Node} from 'react';
@@ -501,6 +502,7 @@ export type ViewProps = $ReadOnly<{|
501502
* Indicates to accessibility services that UI Component is in a specific State.
502503
*/
503504
accessibilityState?: ?AccessibilityState,
505+
accessibilityUnit?: ?AccessibilityUnit,
504506
accessibilityValue?: ?AccessibilityValue,
505507

506508
/**

Libraries/NativeComponent/BaseViewConfig.android.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ const validAttributesForNonEventProps = {
176176
accessibilityCollection: true,
177177
accessibilityCollectionItem: true,
178178
accessibilityState: true,
179+
accessibilityUnit: true,
179180
accessibilityActions: true,
180181
accessibilityValue: true,
181182
importantForAccessibility: true,

Libraries/NativeComponent/BaseViewConfig.ios.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,7 @@ const validAttributesForNonEventProps = {
189189
transform: {diff: require('../Utilities/differ/matricesDiffer')},
190190
accessibilityRole: true,
191191
accessibilityState: true,
192+
accessibilityUnit: false,
192193
nativeID: true,
193194
pointerEvents: true,
194195
removeClippedSubviews: true,

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import android.graphics.Color;
1111
import android.os.Build;
1212
import android.text.TextUtils;
13+
import android.util.Log;
1314
import android.view.View;
1415
import android.view.ViewParent;
1516
import android.view.accessibility.AccessibilityEvent;
@@ -264,6 +265,12 @@ public void setAccessibilityCollectionItem(
264265
view.setTag(R.id.accessibility_collection_item, accessibilityCollectionItem);
265266
}
266267

268+
@ReactProp(name = "accessibilityUnit")
269+
public void setAccessibilityUnit(@NonNull T view, @Nullable ReadableMap accessibilityUnit) {
270+
Log.w("TESTING::BaseViewManager", "setAccessibilityUnit");
271+
Log.w("TESTING::BaseViewManager", "accessibilityUnit: " + (accessibilityUnit));
272+
}
273+
267274
@Override
268275
@ReactProp(name = ViewProps.ACCESSIBILITY_STATE)
269276
public void setViewState(@NonNull T view, @Nullable ReadableMap accessibilityState) {

ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManagerInterface.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ public interface BaseViewManagerInterface<T extends View> {
3434

3535
void setViewState(T view, @Nullable ReadableMap accessibilityState);
3636

37+
void setAccessibilityUnit(T view, @Nullable ReadableMap accessibilityUnit);
38+
3739
void setBackgroundColor(T view, int backgroundColor);
3840

3941
void setBorderRadius(T view, float borderRadius);

ReactAndroid/src/main/java/com/facebook/react/views/text/ReactBaseTextShadowNode.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import android.text.Spannable;
1616
import android.text.SpannableStringBuilder;
1717
import android.text.TextUtils;
18+
import android.util.Log;
1819
import android.view.Gravity;
1920
import androidx.annotation.Nullable;
2021
import com.facebook.infer.annotation.Assertions;
@@ -185,9 +186,11 @@ private static void buildSpannedFromShadowNode(
185186
new SetSpanOperation(start, end, new ReactClickableSpan(textShadowNode.getReactTag())));
186187
}
187188
if (textShadowNode.mAccessibilityUnit != null && Build.VERSION.SDK_INT >= 21) {
189+
/*
188190
ops.add(
189191
new SetSpanOperation(
190192
start, end, new ReactTtsSpan.Builder(textShadowNode.mAccessibilityUnit).build()));
193+
*/
191194
}
192195
float effectiveLetterSpacing = textAttributes.getEffectiveLetterSpacing();
193196
if (!Float.isNaN(effectiveLetterSpacing)
@@ -515,6 +518,14 @@ public void setIsAccessibilityLink(@Nullable String accessibilityRole) {
515518
}
516519
}
517520

521+
@ReactProp(name = "accessibilityUnit")
522+
public void setAccessibilityUnit(@Nullable String accessibilityUnit) {
523+
Log.w("TESTING::ReactBaseTextShadowNode", "accessibilityUnit: " + (accessibilityUnit));
524+
if (isVirtual()) {
525+
markUpdated();
526+
}
527+
}
528+
518529
@ReactProp(name = ViewProps.FONT_FAMILY)
519530
public void setFontFamily(@Nullable String fontFamily) {
520531
mFontFamily = fontFamily;

0 commit comments

Comments
 (0)