Merge "Update Layout.Builder APIs" into main
diff --git a/core/api/current.txt b/core/api/current.txt
index cb92926..06bd72d 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -47549,7 +47549,7 @@
     method @IntRange(from=0) public final int getWidth();
     method public final void increaseWidthTo(int);
     method public boolean isFallbackLineSpacingEnabled();
-    method public final boolean isIncludeFontPadding();
+    method public final boolean isFontPaddingIncluded();
     method public boolean isRtlCharAt(int);
     method protected final boolean isSpanned();
     field public static final int BREAK_STRATEGY_BALANCED = 2; // 0x2
@@ -47585,13 +47585,13 @@
     method @NonNull public android.text.Layout.Builder setEllipsize(@Nullable android.text.TextUtils.TruncateAt);
     method @NonNull public android.text.Layout.Builder setEllipsizedWidth(@IntRange(from=0) int);
     method @NonNull public android.text.Layout.Builder setFallbackLineSpacingEnabled(boolean);
+    method @NonNull public android.text.Layout.Builder setFontPaddingIncluded(boolean);
     method @NonNull public android.text.Layout.Builder setHyphenationFrequency(int);
-    method @NonNull public android.text.Layout.Builder setIncludeFontPadding(boolean);
     method @NonNull public android.text.Layout.Builder setJustificationMode(int);
     method @NonNull public android.text.Layout.Builder setLeftIndents(@Nullable int[]);
     method @NonNull public android.text.Layout.Builder setLineBreakConfig(@NonNull android.graphics.text.LineBreakConfig);
     method @NonNull public android.text.Layout.Builder setLineSpacingAmount(float);
-    method @NonNull public android.text.Layout.Builder setLineSpacingMultiplier(float);
+    method @NonNull public android.text.Layout.Builder setLineSpacingMultiplier(@FloatRange(from=0) float);
     method @NonNull public android.text.Layout.Builder setMaxLines(@IntRange(from=1) int);
     method @NonNull public android.text.Layout.Builder setRightIndents(@Nullable int[]);
     method @NonNull public android.text.Layout.Builder setTextDirectionHeuristic(@NonNull android.text.TextDirectionHeuristic);
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index 98b9fee..c450dc8 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -16,6 +16,7 @@
 
 package android.text;
 
+import android.annotation.FloatRange;
 import android.annotation.IntDef;
 import android.annotation.IntRange;
 import android.annotation.NonNull;
@@ -3407,7 +3408,7 @@
          *
          * The specified amount of pixels will be added to each line.
          *
-         * The default value is {@code 0}.
+         * The default value is {@code 0}. The negative value is allowed for squeezing lines.
          *
          * @param amount an amount of pixels to be added to line height.
          * @return this builder instance.
@@ -3435,7 +3436,7 @@
          * @see StaticLayout.Builder#setLineSpacing(float, float)
          */
         @NonNull
-        public Builder setLineSpacingMultiplier(float multiplier) {
+        public Builder setLineSpacingMultiplier(@FloatRange(from = 0) float multiplier) {
             mSpacingMult = multiplier;
             return this;
         }
@@ -3450,11 +3451,11 @@
          *
          * @param includeFontPadding true for including extra space into first and last line.
          * @return this builder instance.
-         * @see Layout#isIncludeFontPadding()
+         * @see Layout#isFontPaddingIncluded()
          * @see StaticLayout.Builder#setIncludePad(boolean)
          */
         @NonNull
-        public Builder setIncludeFontPadding(boolean includeFontPadding) {
+        public Builder setFontPaddingIncluded(boolean includeFontPadding) {
             mIncludePad = includeFontPadding;
             return this;
         }
@@ -3853,10 +3854,10 @@
      * Returns true if this layout is created with increased line height.
      *
      * @return true if the layout is created with increased line height.
-     * @see Layout.Builder#setIncludeFontPadding(boolean)
+     * @see Layout.Builder#setFontPaddingIncluded(boolean)
      * @see StaticLayout.Builder#setIncludePad(boolean)
      */
-    public final boolean isIncludeFontPadding() {
+    public final boolean isFontPaddingIncluded() {
         return mIncludePad;
     }
 
@@ -3979,7 +3980,7 @@
     @Nullable
     public final int[] getRightIndents() {
         if (mRightIndents == null) {
-            return mLeftIndents;
+            return null;
         }
         int[] newArray = new int[mRightIndents.length];
         System.arraycopy(mRightIndents, 0, newArray, 0, newArray.length);