Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22a167ca authored by Roozbeh Pournader's avatar Roozbeh Pournader
Browse files

Add a builder for DynamicLayout and switch TextView to it

The builder mostly copies the structure and the logic of
StaticLayout.

We also improve various parts of code and documentation in
StaticLayout's builder.

Bug: 28963299
Test: bit FrameworksCoreTests:android.text.
Test: bit FrameworksCoreTests:android.widget.TextViewTest
Test: bit CtsTextTestCases:*
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit CtsWidgetTestCases:android.widget.cts.EditTextTest
Change-Id: I5c4a6e031bd0f41f765a3d85e0b9b7e9be42ad4b
parent 3a580256
Loading
Loading
Loading
Loading
+17 −0
Original line number Original line Diff line number Diff line
@@ -41404,6 +41404,21 @@ package android.text {
    method public int getTopPadding();
    method public int getTopPadding();
  }
  }
  public static final class DynamicLayout.Builder {
    method public android.text.DynamicLayout build();
    method public static android.text.DynamicLayout.Builder obtain(java.lang.CharSequence, android.text.TextPaint, int);
    method public android.text.DynamicLayout.Builder setAlignment(android.text.Layout.Alignment);
    method public android.text.DynamicLayout.Builder setBreakStrategy(int);
    method public android.text.DynamicLayout.Builder setDisplayText(java.lang.CharSequence);
    method public android.text.DynamicLayout.Builder setEllipsize(android.text.TextUtils.TruncateAt);
    method public android.text.DynamicLayout.Builder setEllipsizedWidth(int);
    method public android.text.DynamicLayout.Builder setHyphenationFrequency(int);
    method public android.text.DynamicLayout.Builder setIncludePad(boolean);
    method public android.text.DynamicLayout.Builder setJustificationMode(int);
    method public android.text.DynamicLayout.Builder setLineSpacing(float, float);
    method public android.text.DynamicLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
@@ -41568,6 +41583,8 @@ package android.text {
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final float DEFAULT_LINESPACING_ADDITION = 0.0f;
    field public static final float DEFAULT_LINESPACING_MULTIPLIER = 1.0f;
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
+17 −0
Original line number Original line Diff line number Diff line
@@ -45006,6 +45006,21 @@ package android.text {
    method public int getTopPadding();
    method public int getTopPadding();
  }
  }
  public static final class DynamicLayout.Builder {
    method public android.text.DynamicLayout build();
    method public static android.text.DynamicLayout.Builder obtain(java.lang.CharSequence, android.text.TextPaint, int);
    method public android.text.DynamicLayout.Builder setAlignment(android.text.Layout.Alignment);
    method public android.text.DynamicLayout.Builder setBreakStrategy(int);
    method public android.text.DynamicLayout.Builder setDisplayText(java.lang.CharSequence);
    method public android.text.DynamicLayout.Builder setEllipsize(android.text.TextUtils.TruncateAt);
    method public android.text.DynamicLayout.Builder setEllipsizedWidth(int);
    method public android.text.DynamicLayout.Builder setHyphenationFrequency(int);
    method public android.text.DynamicLayout.Builder setIncludePad(boolean);
    method public android.text.DynamicLayout.Builder setJustificationMode(int);
    method public android.text.DynamicLayout.Builder setLineSpacing(float, float);
    method public android.text.DynamicLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
@@ -45170,6 +45185,8 @@ package android.text {
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final float DEFAULT_LINESPACING_ADDITION = 0.0f;
    field public static final float DEFAULT_LINESPACING_MULTIPLIER = 1.0f;
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
+17 −0
Original line number Original line Diff line number Diff line
@@ -41668,6 +41668,21 @@ package android.text {
    method public int getTopPadding();
    method public int getTopPadding();
  }
  }
  public static final class DynamicLayout.Builder {
    method public android.text.DynamicLayout build();
    method public static android.text.DynamicLayout.Builder obtain(java.lang.CharSequence, android.text.TextPaint, int);
    method public android.text.DynamicLayout.Builder setAlignment(android.text.Layout.Alignment);
    method public android.text.DynamicLayout.Builder setBreakStrategy(int);
    method public android.text.DynamicLayout.Builder setDisplayText(java.lang.CharSequence);
    method public android.text.DynamicLayout.Builder setEllipsize(android.text.TextUtils.TruncateAt);
    method public android.text.DynamicLayout.Builder setEllipsizedWidth(int);
    method public android.text.DynamicLayout.Builder setHyphenationFrequency(int);
    method public android.text.DynamicLayout.Builder setIncludePad(boolean);
    method public android.text.DynamicLayout.Builder setJustificationMode(int);
    method public android.text.DynamicLayout.Builder setLineSpacing(float, float);
    method public android.text.DynamicLayout.Builder setTextDirection(android.text.TextDirectionHeuristic);
  }
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
  public abstract interface Editable implements java.lang.Appendable java.lang.CharSequence android.text.GetChars android.text.Spannable {
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
    method public abstract android.text.Editable append(java.lang.CharSequence, int, int);
@@ -41832,6 +41847,8 @@ package android.text {
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_HIGH_QUALITY = 1; // 0x1
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final int BREAK_STRATEGY_SIMPLE = 0; // 0x0
    field public static final float DEFAULT_LINESPACING_ADDITION = 0.0f;
    field public static final float DEFAULT_LINESPACING_MULTIPLIER = 1.0f;
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_LEFT_TO_RIGHT = 1; // 0x1
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int DIR_RIGHT_TO_LEFT = -1; // 0xffffffff
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
    field public static final int HYPHENATION_FREQUENCY_FULL = 2; // 0x2
+356 −82

File changed.

Preview size limit exceeded, changes collapsed.

+10 −0
Original line number Original line Diff line number Diff line
@@ -119,6 +119,16 @@ public abstract class Layout {
     */
     */
    public static final int JUSTIFICATION_MODE_INTER_WORD = 1;
    public static final int JUSTIFICATION_MODE_INTER_WORD = 1;


    /*
     * Line spacing multiplier for default line spacing.
     */
    public static final float DEFAULT_LINESPACING_MULTIPLIER = 1.0f;

    /*
     * Line spacing addition for default line spacing.
     */
    public static final float DEFAULT_LINESPACING_ADDITION = 0.0f;

    /**
    /**
     * Return how wide a layout must be in order to display the specified text with one line per
     * Return how wide a layout must be in order to display the specified text with one line per
     * paragraph.
     * paragraph.
Loading