Skip to content

Commit

Permalink
feat(text-base): allow subclass to override createFormattedTextNative (
Browse files Browse the repository at this point in the history
  • Loading branch information
farfromrefug committed Apr 18, 2021
1 parent cbdff1f commit b29e145
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 5 deletions.
10 changes: 6 additions & 4 deletions packages/core/ui/text-base/index.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function initializeTextTransformation(): void {
// NOTE: Do we need to transform the new text here?
const formattedText = this.textBase.formattedText;
if (formattedText) {
return createSpannableStringBuilder(formattedText, (<android.widget.TextView>view).getTextSize());
return this.textBase.createFormattedTextNative(formattedText);
} else {
const text = this.textBase.text;
const stringValue = isNullOrUndefined(text) ? '' : text.toString();
Expand Down Expand Up @@ -233,7 +233,9 @@ export class TextBase extends TextBaseCommon {

this._setNativeText(reset);
}

createFormattedTextNative(value: FormattedString) {
return createSpannableStringBuilder(value, this.style.fontSize);
}
[formattedTextProperty.setNative](value: FormattedString) {
const nativeView = this.nativeTextViewProtected;
if (!value) {
Expand All @@ -247,7 +249,7 @@ export class TextBase extends TextBaseCommon {
return;
}

const spannableStringBuilder = createSpannableStringBuilder(value, this.style.fontSize);
const spannableStringBuilder = this.createFormattedTextNative(value);
nativeView.setText(<any>spannableStringBuilder);
this._setTappableState(isStringTappable(value));

Expand Down Expand Up @@ -443,7 +445,7 @@ export class TextBase extends TextBaseCommon {

let transformedText: any;
if (this.formattedText) {
transformedText = createSpannableStringBuilder(this.formattedText, this.style.fontSize);
transformedText = this.createFormattedTextNative(this.formattedText);
} else {
const text = this.text;
const stringValue = text === null || text === undefined ? '' : text.toString();
Expand Down
5 changes: 4 additions & 1 deletion packages/core/ui/text-base/index.ios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,11 @@ export class TextBase extends TextBaseCommon {
}
}

createFormattedTextNative(value: FormattedString) {
return this.createNSMutableAttributedString(value);
}
setFormattedTextDecorationAndTransform() {
const attrText = this.createNSMutableAttributedString(this.formattedText);
const attrText = this.createFormattedTextNative(this.formattedText);
// TODO: letterSpacing should be applied per Span.
if (this.letterSpacing !== 0) {
attrText.addAttributeValueRange(NSKernAttributeName, this.letterSpacing * this.nativeTextViewProtected.font.pointSize, { location: 0, length: attrText.length });
Expand Down

0 comments on commit b29e145

Please sign in to comment.