diff --git a/apps/app/ui-tests-app/issues/issue-5125.ts b/apps/app/ui-tests-app/issues/issue-5125.ts new file mode 100644 index 000000000..d97bfeca8 --- /dev/null +++ b/apps/app/ui-tests-app/issues/issue-5125.ts @@ -0,0 +1,18 @@ +import { NavigatedData } from "tns-core-modules/ui/page"; +import { Page } from "tns-core-modules/ui/page"; +import { Observable } from "tns-core-modules/data/observable"; + +export class HomeViewModel extends Observable { + public stringValue = "test"; + public stringNumericValue = "12345"; + public numericValue = 12345; + + constructor() { + super(); + } +} + +export function onNavigatingTo(args: NavigatedData) { + const page = args.object; + page.bindingContext = new HomeViewModel(); +} \ No newline at end of file diff --git a/apps/app/ui-tests-app/issues/issue-5125.xml b/apps/app/ui-tests-app/issues/issue-5125.xml new file mode 100644 index 000000000..f23c26f97 --- /dev/null +++ b/apps/app/ui-tests-app/issues/issue-5125.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/apps/app/ui-tests-app/issues/main-page.ts b/apps/app/ui-tests-app/issues/main-page.ts index 7afaa8783..587041d48 100644 --- a/apps/app/ui-tests-app/issues/main-page.ts +++ b/apps/app/ui-tests-app/issues/main-page.ts @@ -26,6 +26,7 @@ export function loadExamples() { examples.set("tabview-with-scrollview_4022", "issues/tabview-with-scrollview_4022"); examples.set("3354-ios", "issues/issue-3354"); examples.set("4450", "issues/issue-4450"); + examples.set("5125", "issues/issue-5125"); examples.set("5274", "issues/issue-5274"); examples.set("ng-repo-1599", "issues/issue-ng-repo-1599"); examples.set("ng-repo-1626", "issues/issue-ng-repo-1626"); diff --git a/tns-core-modules/ui/text-base/text-base.android.ts b/tns-core-modules/ui/text-base/text-base.android.ts index fb47d8c89..4dfd0d45f 100644 --- a/tns-core-modules/ui/text-base/text-base.android.ts +++ b/tns-core-modules/ui/text-base/text-base.android.ts @@ -36,7 +36,9 @@ function initializeTextTransformation(): void { return createSpannableStringBuilder(formattedText); } else { - return getTransformedText(this.textBase.text, this.textBase.textTransform); + const text = this.textBase.text; + const stringValue = (text === null || text === undefined) ? "" : text.toString(); + return getTransformedText(stringValue, this.textBase.textTransform); } } @@ -133,7 +135,7 @@ export class TextBase extends TextBaseCommon { if (spannableStringBuilder && nativeView instanceof android.widget.Button && !(nativeView.getTransformationMethod() instanceof TextTransformation)) { - // Replace Android Button's default transformation (in case the developer has not already specified a text-transform) method + // Replace Android Button's default transformation (in case the developer has not already specified a text-transform) method // with our transformation method which can handle formatted text. // Otherwise, the default tranformation method of the Android Button will overwrite and ignore our spannableStringBuilder. nativeView.setTransformationMethod(new TextTransformation(this));