diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-04-01 16:23:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-04-01 16:23:47 +0000 |
commit | d49e789b78522a34f7547269a37d55896ee6dfe5 (patch) | |
tree | 6259a54fade3de66c98f3d8bd9687113cbc78604 | |
parent | 12639deac63d832c0fae7819c6756e22105de213 (diff) | |
parent | ec586470b5c0211a0550554917999f78c94aa4e5 (diff) | |
download | support-d49e789b78522a34f7547269a37d55896ee6dfe5.tar.gz |
Merge "Pass placeholders to MultiParagraph" into androidx-master-dev
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, |