Skip to content

Commit 6def7a9

Browse files
committed
draft cpp configs - they trigger runtime
1 parent 1653d6b commit 6def7a9

File tree

10 files changed

+40
-4
lines changed

10 files changed

+40
-4
lines changed

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import android.text.Layout;
1212
import android.text.TextUtils;
1313
import android.util.LayoutDirection;
14-
import android.util.Log;
1514
import android.view.Gravity;
1615
import androidx.annotation.Nullable;
1716
import com.facebook.react.bridge.JSApplicationIllegalArgumentException;
@@ -105,7 +104,7 @@ public class TextAttributeProps {
105104
protected @Nullable ReactAccessibilityDelegate.AccessibilityRole mAccessibilityRole = null;
106105
protected boolean mIsAccessibilityRoleSet = false;
107106
protected boolean mIsAccessibilityUnitSet = false;
108-
protected String mAccessibilityUnit = null;
107+
protected String mAccessibilityUnit = "";
109108
protected boolean mIsAccessibilityLink = false;
110109

111110
protected int mFontStyle = UNSET;
@@ -147,7 +146,6 @@ public static TextAttributeProps fromMapBuffer(MapBuffer props) {
147146

148147
// TODO T83483191: Review constants that are not being set!
149148
Iterator<MapBuffer.Entry> iterator = props.iterator();
150-
Log.w("TESTING::TextAttributeProps", "props: " + (props));
151149
while (iterator.hasNext()) {
152150
MapBuffer.Entry entry = iterator.next();
153151
switch (entry.getKey()) {
@@ -609,7 +607,6 @@ private void setTextTransform(@Nullable String textTransform) {
609607
}
610608

611609
private void setAccessibilityUnit(@Nullable String accessibilityUnit) {
612-
Log.w("TESTING::TextAttributeProps", "accessibilityUnit: " + (accessibilityUnit));
613610
if (accessibilityUnit != null) {
614611
mIsAccessibilityUnitSet = true;
615612
mAccessibilityUnit = accessibilityUnit;

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import android.text.StaticLayout;
2020
import android.text.TextPaint;
2121
import android.util.LayoutDirection;
22+
import android.util.Log;
2223
import android.util.LruCache;
2324
import android.view.View;
2425
import androidx.annotation.NonNull;
@@ -100,6 +101,7 @@ private static void buildSpannableFromFragment(
100101
ReadableArray fragments,
101102
SpannableStringBuilder sb,
102103
List<SetSpanOperation> ops) {
104+
Log.w("TESTING::TextLayoutManager", "buildSpannableFromFragment");
103105

104106
for (int i = 0, length = fragments.size(); i < length; i++) {
105107
ReadableMap fragment = fragments.getMap(i);
@@ -208,6 +210,7 @@ private static Spannable createSpannableFromAttributedString(
208210
// a new spannable will be wiped out
209211
List<SetSpanOperation> ops = new ArrayList<>();
210212

213+
Log.w("TESTING::TextLayoutManager", "attributedString: " + (attributedString));
211214
buildSpannableFromFragment(context, attributedString.getArray("fragments"), sb, ops);
212215

213216
// TODO T31905686: add support for inline Images

ReactCommon/react/renderer/attributedstring/TextAttributes.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ void TextAttributes::apply(TextAttributes textAttributes) {
9898
accessibilityRole = textAttributes.accessibilityRole.has_value()
9999
? textAttributes.accessibilityRole
100100
: accessibilityRole;
101+
accessibilityUnit = textAttributes.accessibilityUnit.has_value()
102+
? "first value"
103+
: "second value";
101104
}
102105

103106
#pragma mark - Operators
@@ -122,6 +125,7 @@ bool TextAttributes::operator==(const TextAttributes &rhs) const {
122125
isHighlighted,
123126
layoutDirection,
124127
accessibilityRole,
128+
accessibilityUnit,
125129
textTransform) ==
126130
std::tie(
127131
rhs.foregroundColor,
@@ -142,6 +146,7 @@ bool TextAttributes::operator==(const TextAttributes &rhs) const {
142146
rhs.isHighlighted,
143147
rhs.layoutDirection,
144148
rhs.accessibilityRole,
149+
rhs.accessibilityUnit,
145150
rhs.textTransform) &&
146151
floatEquality(opacity, rhs.opacity) &&
147152
floatEquality(fontSize, rhs.fontSize) &&
@@ -209,6 +214,7 @@ SharedDebugStringConvertibleList TextAttributes::getDebugProps() const {
209214
debugStringConvertibleItem("isHighlighted", isHighlighted),
210215
debugStringConvertibleItem("layoutDirection", layoutDirection),
211216
debugStringConvertibleItem("accessibilityRole", accessibilityRole),
217+
debugStringConvertibleItem("accessibilityUnit", accessibilityUnit),
212218
};
213219
}
214220
#endif

ReactCommon/react/renderer/attributedstring/TextAttributes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ class TextAttributes : public DebugStringConvertible {
7979
// construction.
8080
std::optional<LayoutDirection> layoutDirection{};
8181
std::optional<AccessibilityRole> accessibilityRole{};
82+
std::optional<std::string> accessibilityUnit{""};
8283

8384
#pragma mark - Operations
8485

ReactCommon/react/renderer/attributedstring/conversions.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -959,6 +959,10 @@ inline folly::dynamic toDynamic(const TextAttributes &textAttributes) {
959959
_textAttributes(
960960
"accessibilityRole", toString(*textAttributes.accessibilityRole));
961961
}
962+
if (textAttributes.accessibilityUnit.has_value()) {
963+
_textAttributes(
964+
"accessibilityUnit", "random value");
965+
}
962966
return _textAttributes;
963967
}
964968

@@ -1033,6 +1037,7 @@ constexpr static MapBuffer::Key TA_KEY_IS_HIGHLIGHTED = 20;
10331037
constexpr static MapBuffer::Key TA_KEY_LAYOUT_DIRECTION = 21;
10341038
constexpr static MapBuffer::Key TA_KEY_ACCESSIBILITY_ROLE = 22;
10351039
constexpr static MapBuffer::Key TA_KEY_LINE_BREAK_STRATEGY = 23;
1040+
constexpr static MapBuffer::Key TA_KEY_ACCESSIBILITY_UNIT = 24;
10361041

10371042
// constants for ParagraphAttributes serialization
10381043
constexpr static MapBuffer::Key PA_KEY_MAX_NUMBER_OF_LINES = 0;
@@ -1179,6 +1184,10 @@ inline MapBuffer toMapBuffer(const TextAttributes &textAttributes) {
11791184
builder.putString(
11801185
TA_KEY_ACCESSIBILITY_ROLE, toString(*textAttributes.accessibilityRole));
11811186
}
1187+
if (textAttributes.accessibilityUnit.has_value()) {
1188+
builder.putString(
1189+
TA_KEY_ACCESSIBILITY_UNIT, "random string value");
1190+
}
11821191
return builder.build();
11831192
}
11841193

ReactCommon/react/renderer/components/text/BaseTextProps.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,13 @@ static TextAttributes convertRawProp(
177177
sourceTextAttributes.accessibilityRole,
178178
defaultTextAttributes.accessibilityRole);
179179

180+
textAttributes.accessibilityUnit = convertRawProp(
181+
context,
182+
rawProps,
183+
"accessibilityUnit",
184+
sourceTextAttributes.accessibilityUnit,
185+
defaultTextAttributes.accessibilityUnit);
186+
180187
// Color (accessed in this order by ViewProps)
181188
textAttributes.opacity = convertRawProp(
182189
context,
@@ -287,6 +294,12 @@ void BaseTextProps::setProp(
287294
textAttributes,
288295
accessibilityRole,
289296
"accessibilityRole");
297+
REBUILD_FIELD_SWITCH_CASE(
298+
defaults,
299+
value,
300+
textAttributes,
301+
accessibilityUnit,
302+
"accessibilityUnit");
290303
REBUILD_FIELD_SWITCH_CASE(
291304
defaults, value, textAttributes, opacity, "opacity");
292305
REBUILD_FIELD_SWITCH_CASE(

ReactCommon/react/renderer/components/view/AccessibilityProps.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ void AccessibilityProps::setProp(
224224
RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityMagicTap, {});
225225
RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityEscape, {});
226226
RAW_SET_PROP_SWITCH_CASE_BASIC(onAccessibilityAction, {});
227+
RAW_SET_PROP_SWITCH_CASE_BASIC(accessibilityUnit, {});
227228
RAW_SET_PROP_SWITCH_CASE_BASIC(
228229
importantForAccessibility, ImportantForAccessibility::Auto);
229230
RAW_SET_PROP_SWITCH_CASE(testId, "testID", std::string{""});

ReactCommon/react/renderer/components/view/AccessibilityProps.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class AccessibilityProps {
4545
AccessibilityLiveRegion::None};
4646
AccessibilityTraits accessibilityTraits{AccessibilityTraits::None};
4747
std::string accessibilityRole{""};
48+
std::string accessibilityUnit{""};
4849
std::string accessibilityHint{""};
4950
std::string accessibilityLanguage{""};
5051
AccessibilityValue accessibilityValue;

ReactCommon/react/renderer/components/view/AccessibilityPropsMapBuffer.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,10 @@ void AccessibilityProps::propsDiffMapBuffer(
127127
builder.putString(AP_ACCESSIBILITY_ROLE, newProps.accessibilityRole);
128128
}
129129

130+
if (oldProps.accessibilityUnit != newProps.accessibilityUnit) {
131+
builder.putString(AP_ACCESSIBILITY_UNIT, newProps.accessibilityUnit);
132+
}
133+
130134
if (oldProps.accessibilityState != newProps.accessibilityState) {
131135
builder.putMapBuffer(
132136
AP_ACCESSIBILITY_STATE,

ReactCommon/react/renderer/components/view/AccessibilityPropsMapBuffer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ constexpr MapBuffer::Key AP_ACCESSIBILITY_STATE = 6;
2323
constexpr MapBuffer::Key AP_ACCESSIBILITY_VALUE = 7;
2424
constexpr MapBuffer::Key AP_ACCESSIBLE = 8;
2525
constexpr MapBuffer::Key AP_IMPORTANT_FOR_ACCESSIBILITY = 19;
26+
constexpr MapBuffer::Key AP_ACCESSIBILITY_UNIT = 20;
2627

2728
// AccessibilityAction values
2829
constexpr MapBuffer::Key ACCESSIBILITY_ACTION_NAME = 0;

0 commit comments

Comments
 (0)