Skip to content

Commit 6a13b9b

Browse files
committed
Move all ReactSpan subclasses to a separate folder
1 parent a5aed12 commit 6a13b9b

28 files changed

+111
-37
lines changed

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,21 @@
3131
import com.facebook.react.uimanager.ReactShadowNode;
3232
import com.facebook.react.uimanager.ViewProps;
3333
import com.facebook.react.uimanager.annotations.ReactProp;
34+
import com.facebook.react.views.text.span.CustomLetterSpacingSpan;
35+
import com.facebook.react.views.text.span.CustomLineHeightSpan;
36+
import com.facebook.react.views.text.span.CustomStyleSpan;
37+
import com.facebook.react.views.text.span.ReactAbsoluteSizeSpan;
38+
import com.facebook.react.views.text.span.ReactBackgroundColorSpan;
39+
import com.facebook.react.views.text.span.ReactClickableSpan;
40+
import com.facebook.react.views.text.span.ReactForegroundColorSpan;
41+
import com.facebook.react.views.text.span.ReactSpan;
42+
import com.facebook.react.views.text.span.ReactStrikethroughSpan;
43+
import com.facebook.react.views.text.span.ReactTagSpan;
44+
import com.facebook.react.views.text.span.ReactUnderlineSpan;
45+
import com.facebook.react.views.text.span.SetSpanOperation;
46+
import com.facebook.react.views.text.span.ShadowStyleSpan;
47+
import com.facebook.react.views.text.span.TextInlineImageSpan;
48+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan;
3449
import com.facebook.yoga.YogaDirection;
3550
import com.facebook.yoga.YogaUnit;
3651
import com.facebook.yoga.YogaValue;
@@ -366,15 +381,16 @@ protected Spannable spannedFromShadowNode(
366381
// or images.
367382
for (int priorityIndex = 0; priorityIndex < ops.size(); priorityIndex++) {
368383
final SetSpanOperation op = ops.get(ops.size() - priorityIndex - 1);
384+
final ReactSpan what = op.getWhat();
369385

370-
boolean isInlineImage = op.what instanceof TextInlineImageSpan;
371-
if (isInlineImage || op.what instanceof TextInlineViewPlaceholderSpan) {
386+
boolean isInlineImage = what instanceof TextInlineImageSpan;
387+
if (isInlineImage || what instanceof TextInlineViewPlaceholderSpan) {
372388
int height;
373389
if (isInlineImage) {
374-
height = ((TextInlineImageSpan) op.what).getHeight();
390+
height = ((TextInlineImageSpan) what).getHeight();
375391
textShadowNode.mContainsImages = true;
376392
} else {
377-
TextInlineViewPlaceholderSpan placeholder = (TextInlineViewPlaceholderSpan) op.what;
393+
TextInlineViewPlaceholderSpan placeholder = (TextInlineViewPlaceholderSpan) what;
378394
height = placeholder.getHeight();
379395

380396
// Inline views cannot be layout-only because the ReactTextView needs to be able to grab

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextInlineImageShadowNode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package com.facebook.react.views.text;
99

1010
import com.facebook.react.uimanager.LayoutShadowNode;
11+
import com.facebook.react.views.text.span.TextInlineImageSpan;
1112
import com.facebook.yoga.YogaNode;
1213

1314
/** Base class for {@link YogaNode}s that represent inline images. */

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextShadowNode.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import com.facebook.react.uimanager.UIViewOperationQueue;
3333
import com.facebook.react.uimanager.annotations.ReactProp;
3434
import com.facebook.react.uimanager.events.RCTEventEmitter;
35+
import com.facebook.react.views.text.span.ReactAbsoluteSizeSpan;
36+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan;
3537
import com.facebook.yoga.YogaBaselineFunction;
3638
import com.facebook.yoga.YogaConstants;
3739
import com.facebook.yoga.YogaDirection;

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextView.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
import com.facebook.react.uimanager.ViewDefaults;
4141
import com.facebook.react.uimanager.common.UIManagerType;
4242
import com.facebook.react.uimanager.common.ViewUtil;
43+
import com.facebook.react.views.text.span.ReactTagSpan;
44+
import com.facebook.react.views.text.span.TextInlineImageSpan;
45+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan;
4346
import com.facebook.react.views.view.ReactViewBackgroundManager;
4447
import java.util.ArrayList;
4548
import java.util.Collections;

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import com.facebook.react.uimanager.StateWrapper;
2626
import com.facebook.react.uimanager.ThemedReactContext;
2727
import com.facebook.react.uimanager.ViewProps;
28+
import com.facebook.react.views.text.span.ReactClickableSpan;
29+
import com.facebook.react.views.text.span.TextInlineImageSpan;
2830
import com.facebook.yoga.YogaMeasureMode;
2931
import java.util.HashMap;
3032
import java.util.Map;

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,19 @@
3838
import com.facebook.react.uimanager.ReactStylesDiffMap;
3939
import com.facebook.react.uimanager.ViewProps;
4040
import com.facebook.react.views.text.fragments.BridgeTextFragmentList;
41+
import com.facebook.react.views.text.span.CustomLetterSpacingSpan;
42+
import com.facebook.react.views.text.span.CustomLineHeightSpan;
43+
import com.facebook.react.views.text.span.CustomStyleSpan;
44+
import com.facebook.react.views.text.span.ReactAbsoluteSizeSpan;
45+
import com.facebook.react.views.text.span.ReactBackgroundColorSpan;
46+
import com.facebook.react.views.text.span.ReactClickableSpan;
47+
import com.facebook.react.views.text.span.ReactForegroundColorSpan;
48+
import com.facebook.react.views.text.span.ReactStrikethroughSpan;
49+
import com.facebook.react.views.text.span.ReactTagSpan;
50+
import com.facebook.react.views.text.span.ReactUnderlineSpan;
51+
import com.facebook.react.views.text.span.SetSpanOperation;
52+
import com.facebook.react.views.text.span.ShadowStyleSpan;
53+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan;
4154
import com.facebook.yoga.YogaConstants;
4255
import com.facebook.yoga.YogaMeasureMode;
4356
import com.facebook.yoga.YogaMeasureOutput;

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutManagerMapBuffer.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.util.LayoutDirection;
2323
import android.util.LruCache;
2424
import android.view.View;
25+
2526
import androidx.annotation.NonNull;
2627
import androidx.annotation.Nullable;
2728
import com.facebook.common.logging.FLog;
@@ -37,6 +38,19 @@
3738
import com.facebook.react.uimanager.ReactAccessibilityDelegate.AccessibilityRole;
3839
import com.facebook.react.uimanager.ReactAccessibilityDelegate.Role;
3940
import com.facebook.react.views.text.fragments.MapBufferTextFragmentList;
41+
import com.facebook.react.views.text.span.CustomLetterSpacingSpan;
42+
import com.facebook.react.views.text.span.CustomLineHeightSpan;
43+
import com.facebook.react.views.text.span.CustomStyleSpan;
44+
import com.facebook.react.views.text.span.ReactAbsoluteSizeSpan;
45+
import com.facebook.react.views.text.span.ReactBackgroundColorSpan;
46+
import com.facebook.react.views.text.span.ReactClickableSpan;
47+
import com.facebook.react.views.text.span.ReactForegroundColorSpan;
48+
import com.facebook.react.views.text.span.ReactStrikethroughSpan;
49+
import com.facebook.react.views.text.span.ReactTagSpan;
50+
import com.facebook.react.views.text.span.ReactUnderlineSpan;
51+
import com.facebook.react.views.text.span.SetSpanOperation;
52+
import com.facebook.react.views.text.span.ShadowStyleSpan;
53+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan;
4054
import com.facebook.yoga.YogaConstants;
4155
import com.facebook.yoga.YogaMeasureMode;
4256
import com.facebook.yoga.YogaMeasureOutput;

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/TextLayoutUtils.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,27 @@ package com.facebook.react.views.text
99

1010
import android.content.Context
1111
import android.graphics.Color
12-
import android.text.*
12+
import android.text.Spannable
13+
import android.text.SpannableStringBuilder
1314
import android.view.View
1415
import com.facebook.react.common.ReactConstants
1516
import com.facebook.react.uimanager.PixelUtil
1617
import com.facebook.react.uimanager.ReactAccessibilityDelegate
1718
import com.facebook.react.views.text.fragments.TextFragment
1819
import com.facebook.react.views.text.fragments.TextFragmentList
20+
import com.facebook.react.views.text.span.CustomLetterSpacingSpan
21+
import com.facebook.react.views.text.span.CustomLineHeightSpan
22+
import com.facebook.react.views.text.span.CustomStyleSpan
23+
import com.facebook.react.views.text.span.ReactAbsoluteSizeSpan
24+
import com.facebook.react.views.text.span.ReactBackgroundColorSpan
25+
import com.facebook.react.views.text.span.ReactClickableSpan
26+
import com.facebook.react.views.text.span.ReactForegroundColorSpan
27+
import com.facebook.react.views.text.span.ReactStrikethroughSpan
28+
import com.facebook.react.views.text.span.ReactTagSpan
29+
import com.facebook.react.views.text.span.ReactUnderlineSpan
30+
import com.facebook.react.views.text.span.SetSpanOperation
31+
import com.facebook.react.views.text.span.ShadowStyleSpan
32+
import com.facebook.react.views.text.span.TextInlineViewPlaceholderSpan
1933

2034
/** Utility methods for building [Spannable]s */
2135
internal object TextLayoutUtils {

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageShadowNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import com.facebook.react.uimanager.ViewProps;
2323
import com.facebook.react.uimanager.annotations.ReactProp;
2424
import com.facebook.react.views.text.ReactTextInlineImageShadowNode;
25-
import com.facebook.react.views.text.TextInlineImageSpan;
25+
import com.facebook.react.views.text.span.TextInlineImageSpan;
2626
import com.facebook.yoga.YogaConstants;
2727
import java.util.Locale;
2828

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/text/frescosupport/FrescoBasedReactTextInlineImageSpan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import com.facebook.react.modules.fresco.ReactNetworkImageRequest;
2828
import com.facebook.react.uimanager.PixelUtil;
2929
import com.facebook.react.views.image.ImageResizeMode;
30-
import com.facebook.react.views.text.TextInlineImageSpan;
30+
import com.facebook.react.views.text.span.TextInlineImageSpan;
3131

3232
/**
3333
* FrescoBasedTextInlineImageSpan is a span for Images that are inside <Text/>. It computes its size

0 commit comments

Comments
 (0)