aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2020-04-01 16:23:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2020-04-01 16:23:47 +0000
commitd49e789b78522a34f7547269a37d55896ee6dfe5 (patch)
tree6259a54fade3de66c98f3d8bd9687113cbc78604
parent12639deac63d832c0fae7819c6756e22105de213 (diff)
parentec586470b5c0211a0550554917999f78c94aa4e5 (diff)
downloadsupport-d49e789b78522a34f7547269a37d55896ee6dfe5.tar.gz
Merge "Pass placeholders to MultiParagraph" into androidx-master-dev
-rw-r--r--ui/ui-text/api/0.1.0-dev08.txt32
-rw-r--r--ui/ui-text/api/0.1.0-dev09.txt32
-rw-r--r--ui/ui-text/api/current.txt32
-rw-r--r--ui/ui-text/api/public_plus_experimental_0.1.0-dev08.txt32
-rw-r--r--ui/ui-text/api/public_plus_experimental_0.1.0-dev09.txt32
-rw-r--r--ui/ui-text/api/public_plus_experimental_current.txt32
-rw-r--r--ui/ui-text/api/restricted_0.1.0-dev08.txt35
-rw-r--r--ui/ui-text/api/restricted_0.1.0-dev09.txt35
-rw-r--r--ui/ui-text/api/restricted_current.txt35
-rw-r--r--ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt186
-rw-r--r--ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt26
-rw-r--r--ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt23
-rw-r--r--ui/ui-text/src/main/java/androidx/ui/text/Placeholder.kt2
-rw-r--r--ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt12
-rw-r--r--ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt23
-rw-r--r--ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt1
16 files changed, 459 insertions, 111 deletions
diff --git a/ui/ui-text/api/0.1.0-dev08.txt b/ui/ui-text/api/0.1.0-dev08.txt
index 98452a4d5b0..8bef942794f 100644
--- a/ui/ui-text/api/0.1.0-dev08.txt
+++ b/ui/ui-text/api/0.1.0-dev08.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -505,22 +511,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -546,6 +554,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -553,6 +562,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/0.1.0-dev09.txt b/ui/ui-text/api/0.1.0-dev09.txt
index 8b2d13dd446..234c42e1504 100644
--- a/ui/ui-text/api/0.1.0-dev09.txt
+++ b/ui/ui-text/api/0.1.0-dev09.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -495,22 +501,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -536,6 +544,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -543,6 +552,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/current.txt b/ui/ui-text/api/current.txt
index 8b2d13dd446..234c42e1504 100644
--- a/ui/ui-text/api/current.txt
+++ b/ui/ui-text/api/current.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -495,22 +501,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -536,6 +544,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -543,6 +552,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/public_plus_experimental_0.1.0-dev08.txt b/ui/ui-text/api/public_plus_experimental_0.1.0-dev08.txt
index 98452a4d5b0..8bef942794f 100644
--- a/ui/ui-text/api/public_plus_experimental_0.1.0-dev08.txt
+++ b/ui/ui-text/api/public_plus_experimental_0.1.0-dev08.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -505,22 +511,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -546,6 +554,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -553,6 +562,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/public_plus_experimental_0.1.0-dev09.txt b/ui/ui-text/api/public_plus_experimental_0.1.0-dev09.txt
index 8b2d13dd446..234c42e1504 100644
--- a/ui/ui-text/api/public_plus_experimental_0.1.0-dev09.txt
+++ b/ui/ui-text/api/public_plus_experimental_0.1.0-dev09.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -495,22 +501,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -536,6 +544,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -543,6 +552,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/public_plus_experimental_current.txt b/ui/ui-text/api/public_plus_experimental_current.txt
index 8b2d13dd446..234c42e1504 100644
--- a/ui/ui-text/api/public_plus_experimental_current.txt
+++ b/ui/ui-text/api/public_plus_experimental_current.txt
@@ -292,7 +292,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -316,6 +316,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -326,18 +327,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -495,22 +501,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -536,6 +544,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -543,6 +552,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/restricted_0.1.0-dev08.txt b/ui/ui-text/api/restricted_0.1.0-dev08.txt
index ffa3aeed602..b6b806e95d1 100644
--- a/ui/ui-text/api/restricted_0.1.0-dev08.txt
+++ b/ui/ui-text/api/restricted_0.1.0-dev08.txt
@@ -297,7 +297,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -321,6 +321,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -331,18 +332,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -497,13 +503,14 @@ package androidx.ui.text {
}
@RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class TextDelegate {
- ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders);
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public androidx.ui.unit.IntPx getMaxIntrinsicWidth();
method public int getMaxLines();
method public androidx.ui.unit.IntPx getMinIntrinsicWidth();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -531,22 +538,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -572,6 +581,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -579,6 +589,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/restricted_0.1.0-dev09.txt b/ui/ui-text/api/restricted_0.1.0-dev09.txt
index df74294df6a..6cc44650b03 100644
--- a/ui/ui-text/api/restricted_0.1.0-dev09.txt
+++ b/ui/ui-text/api/restricted_0.1.0-dev09.txt
@@ -297,7 +297,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -321,6 +321,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -331,18 +332,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -497,12 +503,13 @@ package androidx.ui.text {
}
@RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class TextDelegate {
- ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders);
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.unit.IntPx getMaxIntrinsicWidth();
method public int getMaxLines();
method public androidx.ui.unit.IntPx getMinIntrinsicWidth();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -523,22 +530,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -564,6 +573,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -571,6 +581,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/api/restricted_current.txt b/ui/ui-text/api/restricted_current.txt
index df74294df6a..6cc44650b03 100644
--- a/ui/ui-text/api/restricted_current.txt
+++ b/ui/ui-text/api/restricted_current.txt
@@ -297,7 +297,7 @@ package androidx.ui.text {
public final class MultiParagraph {
ctor public MultiParagraph(androidx.ui.text.MultiParagraphIntrinsics intrinsics, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints);
- ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraph(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean ellipsis, androidx.ui.text.ParagraphConstraints constraints, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.style.TextDirection getBidiRunDirection(int offset);
method public androidx.ui.geometry.Rect getBoundingBox(int offset);
method public androidx.ui.geometry.Rect getCursorRect(int offset);
@@ -321,6 +321,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public float getWidth();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
method public void paint(androidx.ui.graphics.Canvas canvas);
@@ -331,18 +332,23 @@ package androidx.ui.text {
property public final int lineCount;
property public final float maxIntrinsicWidth;
property public final float minIntrinsicWidth;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
property public final float width;
}
public final class MultiParagraphIntrinsics implements androidx.ui.text.ParagraphIntrinsics {
- ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public MultiParagraphIntrinsics(androidx.ui.text.AnnotatedString annotatedString, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
method public androidx.ui.text.AnnotatedString getAnnotatedString();
method public float getMaxIntrinsicWidth();
method public float getMinIntrinsicWidth();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
property public float maxIntrinsicWidth;
property public float minIntrinsicWidth;
}
+ public final class MultiParagraphIntrinsicsKt {
+ }
+
public final class MultiParagraphKt {
}
@@ -497,12 +503,13 @@ package androidx.ui.text {
}
@RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP) public final class TextDelegate {
- ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader);
+ ctor public TextDelegate(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.text.font.Font.ResourceLoader resourceLoader, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders);
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.unit.IntPx getMaxIntrinsicWidth();
method public int getMaxLines();
method public androidx.ui.unit.IntPx getMinIntrinsicWidth();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -523,22 +530,24 @@ package androidx.ui.text {
}
public final class TextLayoutInput {
- ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ ctor public TextLayoutInput(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.text.AnnotatedString component1();
+ method public androidx.ui.core.Constraints component10();
method public androidx.ui.text.TextStyle component2();
- method public int component3();
- method public boolean component4();
- method public androidx.ui.text.style.TextOverflow component5();
- method public androidx.ui.unit.Density component6();
- method public androidx.ui.core.LayoutDirection component7();
- method public androidx.ui.text.font.Font.ResourceLoader component8();
- method public androidx.ui.core.Constraints component9();
- method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> component3();
+ method public int component4();
+ method public boolean component5();
+ method public androidx.ui.text.style.TextOverflow component6();
+ method public androidx.ui.unit.Density component7();
+ method public androidx.ui.core.LayoutDirection component8();
+ method public androidx.ui.text.font.Font.ResourceLoader component9();
+ method public androidx.ui.text.TextLayoutInput copy(androidx.ui.text.AnnotatedString text, androidx.ui.text.TextStyle style, java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> placeholders, int maxLines, boolean softWrap, androidx.ui.text.style.TextOverflow overflow, androidx.ui.unit.Density density, androidx.ui.core.LayoutDirection layoutDirection, androidx.ui.text.font.Font.ResourceLoader resourceLoader, androidx.ui.core.Constraints constraints);
method public androidx.ui.core.Constraints getConstraints();
method public androidx.ui.unit.Density getDensity();
method public androidx.ui.core.LayoutDirection getLayoutDirection();
method public int getMaxLines();
method public androidx.ui.text.style.TextOverflow getOverflow();
+ method public java.util.List<androidx.ui.text.AnnotatedString.Item<androidx.ui.text.Placeholder>> getPlaceholders();
method public androidx.ui.text.font.Font.ResourceLoader getResourceLoader();
method public boolean getSoftWrap();
method public androidx.ui.text.TextStyle getStyle();
@@ -564,6 +573,7 @@ package androidx.ui.text {
method public int getOffsetForPosition(androidx.ui.unit.PxPosition position);
method public androidx.ui.text.style.TextDirection getParagraphDirection(int offset);
method public androidx.ui.graphics.Path getPathForRange(int start, int end);
+ method public java.util.List<androidx.ui.geometry.Rect> getPlaceholderRects();
method public androidx.ui.unit.IntPxSize getSize();
method public androidx.ui.text.TextRange getWordBoundary(int offset);
property public final boolean didOverflowHeight;
@@ -571,6 +581,7 @@ package androidx.ui.text {
property public final androidx.ui.unit.Px firstBaseline;
property public final boolean hasVisualOverflow;
property public final androidx.ui.unit.Px lastBaseline;
+ property public final java.util.List<androidx.ui.geometry.Rect> placeholderRects;
}
public final class TextPainter {
diff --git a/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt b/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
index 3bf2b2183d3..6d2858bee45 100644
--- a/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
+++ b/ui/ui-text/src/androidTest/java/androidx/ui/text/MultiParagraphIntegrationTest.kt
@@ -31,6 +31,7 @@ import androidx.ui.text.style.TextIndent
import androidx.ui.unit.Density
import androidx.ui.unit.PxPosition
import androidx.ui.unit.TextUnit
+import androidx.ui.unit.em
import androidx.ui.unit.px
import androidx.ui.unit.sp
import com.google.common.truth.Truth.assertThat
@@ -1260,6 +1261,187 @@ class MultiParagraphIntegrationTest {
assertThat(paragraph.getParagraphDirection(1)).isEqualTo(TextDirection.Rtl)
}
+ @Test
+ fun maxIntrinsicWidth_withPlaceholder_inEm() {
+ val text = AnnotatedString(text = "ab")
+ val fontSize = 20
+ val width = 2.em
+ val placeholders = listOf(
+ AnnotatedString.Item(
+ Placeholder(width, 1.em, PlaceholderVerticalAlign.AboveBaseline),
+ 0,
+ 1
+ )
+ )
+
+ val paragraph = MultiParagraph(
+ annotatedString = text,
+ style = TextStyle(
+ fontSize = fontSize.sp,
+ fontFamily = fontFamilyMeasureFont,
+ textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
+ ),
+ placeholders = placeholders,
+ constraints = ParagraphConstraints(Float.MAX_VALUE),
+ density = defaultDensity,
+ resourceLoader = TestFontResourceLoader(context)
+ )
+
+ // Rendered as below:
+ // | |b
+ // The placeholder takes the space of 2 characters
+ assertThat(paragraph.maxIntrinsicWidth).isEqualTo(fontSize * width.value + fontSize)
+ }
+
+ @Test
+ fun maxIntrinsicWidth_withPlaceholder_inSp() {
+ val text = AnnotatedString(text = "ab")
+ val fontSize = 20
+ val width = 30.sp
+ val placeholders = listOf(
+ AnnotatedString.Item(
+ Placeholder(width, 1.em, PlaceholderVerticalAlign.AboveBaseline),
+ 0,
+ 1
+ )
+ )
+
+ val paragraph = MultiParagraph(
+ annotatedString = text,
+ style = TextStyle(
+ fontSize = fontSize.sp,
+ fontFamily = fontFamilyMeasureFont,
+ textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
+ ),
+ placeholders = placeholders,
+ constraints = ParagraphConstraints(Float.MAX_VALUE),
+ density = defaultDensity,
+ resourceLoader = TestFontResourceLoader(context)
+ )
+
+ // Rendered as below:
+ // | |b
+ // The placeholder takes 30 sp. In default density, it will be 30 pixels
+ assertThat(paragraph.maxIntrinsicWidth).isEqualTo(fontSize + width.value)
+ }
+
+ @Test
+ fun placeholderRects_withSingleParagraph() {
+ val text = AnnotatedString(text = "ab")
+ val fontSize = 20
+ val width = 2.em
+ val height = 1.em
+ val placeholders = listOf(
+ AnnotatedString.Item(
+ Placeholder(width, height, PlaceholderVerticalAlign.AboveBaseline),
+ 0,
+ 1
+ )
+ )
+
+ val paragraph = MultiParagraph(
+ annotatedString = text,
+ style = TextStyle(
+ fontSize = fontSize.sp,
+ fontFamily = fontFamilyMeasureFont,
+ textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
+ ),
+ placeholders = placeholders,
+ constraints = ParagraphConstraints(Float.MAX_VALUE),
+ density = defaultDensity,
+ resourceLoader = TestFontResourceLoader(context)
+ )
+
+ assertThat(paragraph.placeholderRects).hasSize(1)
+ assertThat(paragraph.placeholderRects[0]).isEqualTo(
+ Rect(
+ left = 0f,
+ top = paragraph.firstBaseline - height.value * fontSize,
+ right = width.value * fontSize,
+ bottom = paragraph.firstBaseline
+ )
+ )
+ }
+
+ @Test
+ fun placeholderRects_withMultipleParagraphs() {
+ val text = createAnnotatedString("ab", "cd")
+ val fontSize = 20
+ val width = 2.em
+ val height = 1.em
+ val placeholders = listOf(
+ AnnotatedString.Item(
+ Placeholder(width, height, PlaceholderVerticalAlign.AboveBaseline),
+ 0,
+ 1
+ ),
+ AnnotatedString.Item(
+ Placeholder(width, height, PlaceholderVerticalAlign.AboveBaseline),
+ 2,
+ 3
+ )
+ )
+
+ val paragraph = MultiParagraph(
+ annotatedString = text,
+ style = TextStyle(
+ fontSize = fontSize.sp,
+ fontFamily = fontFamilyMeasureFont,
+ textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
+ ),
+ placeholders = placeholders,
+ constraints = ParagraphConstraints(Float.MAX_VALUE),
+ density = defaultDensity,
+ resourceLoader = TestFontResourceLoader(context)
+ )
+
+ assertThat(paragraph.placeholderRects).hasSize(2)
+ assertThat(paragraph.placeholderRects[0]).isEqualTo(
+ Rect(
+ left = 0f,
+ top = paragraph.firstBaseline - height.value * fontSize,
+ right = width.value * fontSize,
+ bottom = paragraph.firstBaseline
+ )
+ )
+ assertThat(paragraph.placeholderRects[1]).isEqualTo(
+ Rect(
+ left = 0f,
+ top = paragraph.lastBaseline - height.value * fontSize,
+ right = width.value * fontSize,
+ bottom = paragraph.lastBaseline
+ )
+ )
+ }
+
+ @Test(expected = IllegalArgumentException::class)
+ fun placeholderRects_overlapWithParagraph() {
+ val text = createAnnotatedString("ab", "cd")
+ val fontSize = 20
+ val width = 2.em
+ val height = 1.em
+ val placeholders = listOf(
+ AnnotatedString.Item(
+ Placeholder(width, height, PlaceholderVerticalAlign.AboveBaseline),
+ 1,
+ 3
+ )
+ )
+
+ MultiParagraph(
+ annotatedString = text,
+ style = TextStyle(
+ fontSize = fontSize.sp,
+ fontFamily = fontFamilyMeasureFont,
+ textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
+ ),
+ placeholders = placeholders,
+ constraints = ParagraphConstraints(Float.MAX_VALUE),
+ density = defaultDensity,
+ resourceLoader = TestFontResourceLoader(context)
+ )
+ }
+
/**
* Helper function which creates an AnnotatedString where each input string becomes a paragraph.
*/
@@ -1281,7 +1463,8 @@ class MultiParagraphIntegrationTest {
private fun simpleMultiParagraphIntrinsics(
text: AnnotatedString,
- fontSize: TextUnit = TextUnit.Inherit
+ fontSize: TextUnit = TextUnit.Inherit,
+ placeholders: List<AnnotatedString.Item<Placeholder>> = listOf()
): MultiParagraphIntrinsics {
return MultiParagraphIntrinsics(
text,
@@ -1290,6 +1473,7 @@ class MultiParagraphIntegrationTest {
fontSize = fontSize,
textDirectionAlgorithm = TextDirectionAlgorithm.ContentOrLtr
),
+ placeholders = placeholders,
density = defaultDensity,
resourceLoader = TestFontResourceLoader(context)
)
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
index 5f8c358a726..ebb228dfb21 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraph.kt
@@ -49,17 +49,24 @@ class MultiParagraph(
*
* @param annotatedString the text to be laid out
* @param style the [TextStyle] to be applied to the whole text
+ * @param placeholders a list of [Placeholder]s that specify ranges of text which will be
+ * skipped during layout and replaced with [Placeholder]. It's required that the range of each
+ * [Placeholder] doesn't cross paragraph boundary, otherwise [IllegalArgumentException] is
+ * thrown.
* @param maxLines the maximum number of lines that the text can have
* @param ellipsis whether to ellipsize text, applied only when [maxLines] is set
* @param constraints how wide the text is allowed to be
* @param density density of the device
* @param resourceLoader [Font.ResourceLoader] to be used to load the font given in [SpanStyle]s
*
- * @throws IllegalArgumentException if [ParagraphStyle.textDirectionAlgorithm] is not set
+ * @see Placeholder
+ * @throws IllegalArgumentException if [ParagraphStyle.textDirectionAlgorithm] is not set, or
+ * any of the [placeholders] crosses paragraph boundary.
*/
constructor(
annotatedString: AnnotatedString,
style: TextStyle,
+ placeholders: List<AnnotatedString.Item<Placeholder>> = listOf(),
maxLines: Int = Int.MAX_VALUE,
ellipsis: Boolean = false,
constraints: ParagraphConstraints,
@@ -69,6 +76,7 @@ class MultiParagraph(
intrinsics = MultiParagraphIntrinsics(
annotatedString = annotatedString,
style = style,
+ placeholders = placeholders,
density = density,
resourceLoader = resourceLoader
),
@@ -134,13 +142,22 @@ class MultiParagraph(
return if (paragraphInfoList.isEmpty()) {
0f
} else {
- paragraphInfoList.last().paragraph.lastBaseline
+ with(paragraphInfoList.last()) {
+ paragraph.lastBaseline.toGlobalYPosition()
+ }
}
}
/** The total number of lines in the text. */
val lineCount: Int
+ /**
+ * The bounding boxes reserved for the input placeholders in this MultiParagraph. Their
+ * locations are relative to this MultiParagraph's coordinate. The order of this list
+ * corresponds to that of input placeholders.
+ */
+ val placeholderRects: List<Rect>
+
/* This is internal for testing purpose. */
internal val paragraphInfoList: List<ParagraphInfo>
@@ -191,6 +208,11 @@ class MultiParagraph(
this.didExceedMaxLines = didExceedMaxLines
this.paragraphInfoList = paragraphInfoList
this.width = constraints.width
+ this.placeholderRects = paragraphInfoList.flatMap { paragraphInfo ->
+ with(paragraphInfo) {
+ paragraph.placeholderRects.map { it.toGlobal() }
+ }
+ }
}
/** Paint the paragraphs to canvas. */
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
index f97f1d0fdcf..a7750d592d9 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/MultiParagraphIntrinsics.kt
@@ -25,17 +25,22 @@ import androidx.ui.unit.Density
*
* @param annotatedString the text to be laid out
* @param style the [TextStyle] to be applied to the whole text
+ * @param placeholders a list of [Placeholder]s that specify ranges of text which will be
+ * skipped during layout and replaced with [Placeholder]. It's required that the range of each
+ * [Placeholder] doesn't cross paragraph boundary, otherwise [IllegalArgumentException] is thrown.
* @param density density of the device
* @param resourceLoader [Font.ResourceLoader] to be used to load the font given in [SpanStyle]s
* @see MultiParagraph
+ * @see Placeholder
*
- * @throws IllegalArgumentException if [ParagraphStyle.textDirectionAlgorithm] is not set
- *
+ * @throws IllegalArgumentException if [ParagraphStyle.textDirectionAlgorithm] is not set, or any
+ * of the [placeholders] crosses paragraph boundary.
*/
class MultiParagraphIntrinsics(
val annotatedString: AnnotatedString,
style: TextStyle,
+ val placeholders: List<AnnotatedString.Item<Placeholder>>,
density: Density,
resourceLoader: Font.ResourceLoader
) : ParagraphIntrinsics {
@@ -66,8 +71,12 @@ class MultiParagraphIntrinsics(
ParagraphIntrinsicInfo(
intrinsics = ParagraphIntrinsics(
text = annotatedString.text,
- spanStyles = annotatedString.spanStyles,
style = style.merge(currentParagraphStyle),
+ spanStyles = annotatedString.spanStyles,
+ placeholders = placeholders.getLocalPlaceholders(
+ paragraphStyleItem.start,
+ paragraphStyleItem.end
+ ),
density = density,
resourceLoader = resourceLoader
),
@@ -103,6 +112,14 @@ class MultiParagraphIntrinsics(
}
}
+private fun List<AnnotatedString.Item<Placeholder>>.getLocalPlaceholders(start: Int, end: Int) =
+ filter { intersect(start, end, it.start, it.end) }.map {
+ require(start <= it.start && it.end <= end) {
+ "placeholder can not overlap with paragraph."
+ }
+ AnnotatedString.Item(it.item, it.start - start, it.end - start)
+ }
+
internal data class ParagraphIntrinsicInfo(
val intrinsics: ParagraphIntrinsics,
val startIndex: Int,
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/Placeholder.kt b/ui/ui-text/src/main/java/androidx/ui/text/Placeholder.kt
index f53d790262f..d922d709a07 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/Placeholder.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/Placeholder.kt
@@ -19,7 +19,7 @@ package androidx.ui.text
import androidx.ui.unit.TextUnit
/**
- * A placeholder is a rectangle box inserted into text, which tells the text processor to left an
+ * A placeholder is a rectangle box inserted into text, which tells the text processor to leave an
* empty space. It is typically used to insert inline image, custom emoji, etc into the text
* paragraph.
*
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
index 97a51552bde..0938de964a5 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextDelegate.kt
@@ -67,6 +67,11 @@ import androidx.ui.unit.px
* to the last line before the line truncated by [maxLines], if [maxLines] is non-null and that
* line overflows the width constraint.
*
+ * @param density The [Density] object that provides pixel density information of the device
+ *
+ * @param placeholders a list of [Placeholder]s that specify ranges of text where the original
+ * text is replaced empty spaces. It's typically used to embed images into text.
+ *
* @suppress
*/
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@@ -77,7 +82,8 @@ class TextDelegate(
val softWrap: Boolean = true,
val overflow: TextOverflow = TextOverflow.Clip,
val density: Density,
- val resourceLoader: Font.ResourceLoader
+ val resourceLoader: Font.ResourceLoader,
+ val placeholders: List<AnnotatedString.Item<Placeholder>> = listOf()
) {
@VisibleForTesting
internal var paragraphIntrinsics: MultiParagraphIntrinsics? = null
@@ -116,7 +122,8 @@ class TextDelegate(
annotatedString = text,
style = resolveDefaults(style, layoutDirection),
density = density,
- resourceLoader = resourceLoader
+ resourceLoader = resourceLoader,
+ placeholders = placeholders
)
} else {
paragraphIntrinsics
@@ -195,6 +202,7 @@ class TextDelegate(
TextLayoutInput(
text,
style,
+ placeholders,
maxLines,
softWrap,
overflow,
diff --git a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
index c90a0476b49..294862e91a6 100644
--- a/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
+++ b/ui/ui-text/src/main/java/androidx/ui/text/TextLayoutResult.kt
@@ -44,6 +44,17 @@ data class TextLayoutInput(
val style: TextStyle,
/**
+ * A list of [Placeholder]s inserted into text layout that reserves space to embed icons or
+ * custom emojis. A list of bounding boxes will be returned in
+ * [TextLayoutResult.placeholderRects] that corresponds to this input.
+ *
+ * @see TextLayoutResult.placeholderRects
+ * @see MultiParagraph
+ * @see MultiParagraphIntrinsics
+ */
+ val placeholders: List<AnnotatedString.Item<Placeholder>>,
+
+ /**
* The maxLines param used for computing this text layout.
*/
val maxLines: Int,
@@ -127,6 +138,18 @@ data class TextLayoutResult internal constructor(
val hasVisualOverflow: Boolean get() = didOverflowWidth || didOverflowHeight
/**
+ * Returns a list of bounding boxes that is reserved for [TextLayoutInput.placeholders].
+ * Each [Rect] in this list corresponds to the [Placeholder] passed to
+ * [TextLayoutInput.placeholders] and it will have the height and width specified in the
+ * [Placeholder]. It's guaranteed that [TextLayoutInput.placeholders] and
+ * [TextLayoutResult.placeholderRects] will have same length and order.
+ *
+ * @see TextLayoutInput.placeholders
+ * @see Placeholder
+ */
+ val placeholderRects: List<Rect> = multiParagraph.placeholderRects
+
+ /**
* Returns the bottom y coordinate of the given line.
*
* @param lineIndex the line number
diff --git a/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt b/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
index 44254d117aa..6eb0b688ead 100644
--- a/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
+++ b/ui/ui-text/src/test/java/androidx/ui/text/TextLayoutHelperTest.kt
@@ -46,6 +46,7 @@ class TextLayoutHelperTest {
TextLayoutInput(
text = AnnotatedString.Builder("Hello, World").toAnnotatedString(),
style = TextStyle(),
+ placeholders = listOf(),
maxLines = 1,
softWrap = true,
overflow = TextOverflow.Ellipsis,