diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml index 791f587a98fa4..a8d3de0b9a971 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_10.xml @@ -35,8 +35,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="20px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml index cca4a525b5e1b..d991862f7a09a 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_100.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="110px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml index bb9fc5e6aa7fd..3b55b6c8b56d2 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_1000.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="1010px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml index e0e58789a3c77..64a25c27f4a5e 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_10000.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="10010px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml index 4f668058e59a2..1f60783969064 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_100000.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="100010px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml index d3a4040a39102..54c7e71c9a9a6 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_300.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="310px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml index c7982e7693946..525b2c854c7a1 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_5.xml @@ -35,8 +35,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="15px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml index b009889948366..470c4da1376e4 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_50.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="60px" android:autoSizeStepGranularity="1px"/> diff --git a/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml b/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml index f59d7511b5d85..b8a6e0af49f0d 100644 --- a/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml +++ b/apct-tests/perftests/core/res/layout/test_autosize_textview_500.xml @@ -19,8 +19,7 @@ android:layout_width="400dp" android:layout_height="600dp" android:text="@string/long_text" - android:textDirection="rtl" - android:autoSizeText="xy" + android:autoSizeText="uniform" android:autoSizeMinTextSize="10px" android:textSize="510px" android:autoSizeStepGranularity="1px"/> diff --git a/api/current.txt b/api/current.txt index 96b96dbdaecde..ed585ba597ea8 100644 --- a/api/current.txt +++ b/api/current.txt @@ -299,8 +299,8 @@ package android { field public static final int autoRemoveFromRecents = 16843847; // 0x1010447 field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547 field public static final int autoSizeMinTextSize = 16844088; // 0x1010538 + field public static final int autoSizePresetSizes = 16844087; // 0x1010537 field public static final int autoSizeStepGranularity = 16844086; // 0x1010536 - field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537 field public static final int autoSizeText = 16844085; // 0x1010535 field public static final int autoStart = 16843445; // 0x10102b5 field public static final deprecated int autoText = 16843114; // 0x101016a @@ -5503,6 +5503,7 @@ package android.app { public final class NotificationChannelGroup implements android.os.Parcelable { ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence); ctor protected NotificationChannelGroup(android.os.Parcel); + method public android.app.NotificationChannelGroup clone(); method public int describeContents(); method public java.util.List getChannels(); method public java.lang.String getId(); @@ -50379,7 +50380,7 @@ package android.widget { method public int getAutoSizeMaxTextSize(); method public int getAutoSizeMinTextSize(); method public int getAutoSizeStepGranularity(); - method public int[] getAutoSizeTextPresetSizes(); + method public int[] getAutoSizeTextAvailableSizes(); method public int getAutoSizeTextType(); method public int getBreakStrategy(); method public int getCompoundDrawablePadding(); @@ -50587,7 +50588,7 @@ package android.widget { method public void setTypeface(android.graphics.Typeface); method public void setWidth(int); field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0 - field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1 + field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1 } public static final class TextView.BufferType extends java.lang.Enum { diff --git a/api/system-current.txt b/api/system-current.txt index 3a58bf4c8d7a8..0c2e893111038 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -411,8 +411,8 @@ package android { field public static final int autoRemoveFromRecents = 16843847; // 0x1010447 field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547 field public static final int autoSizeMinTextSize = 16844088; // 0x1010538 + field public static final int autoSizePresetSizes = 16844087; // 0x1010537 field public static final int autoSizeStepGranularity = 16844086; // 0x1010536 - field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537 field public static final int autoSizeText = 16844085; // 0x1010535 field public static final int autoStart = 16843445; // 0x10102b5 field public static final deprecated int autoText = 16843114; // 0x101016a @@ -5697,6 +5697,7 @@ package android.app { ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence); ctor protected NotificationChannelGroup(android.os.Parcel); method public void addChannel(android.app.NotificationChannel); + method public android.app.NotificationChannelGroup clone(); method public int describeContents(); method public java.util.List getChannels(); method public java.lang.String getId(); @@ -54159,7 +54160,7 @@ package android.widget { method public int getAutoSizeMaxTextSize(); method public int getAutoSizeMinTextSize(); method public int getAutoSizeStepGranularity(); - method public int[] getAutoSizeTextPresetSizes(); + method public int[] getAutoSizeTextAvailableSizes(); method public int getAutoSizeTextType(); method public int getBreakStrategy(); method public int getCompoundDrawablePadding(); @@ -54367,7 +54368,7 @@ package android.widget { method public void setTypeface(android.graphics.Typeface); method public void setWidth(int); field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0 - field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1 + field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1 } public static final class TextView.BufferType extends java.lang.Enum { diff --git a/api/test-current.txt b/api/test-current.txt index 36f5835188b3a..2d2dfd10286d7 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -299,8 +299,8 @@ package android { field public static final int autoRemoveFromRecents = 16843847; // 0x1010447 field public static final int autoSizeMaxTextSize = 16844103; // 0x1010547 field public static final int autoSizeMinTextSize = 16844088; // 0x1010538 + field public static final int autoSizePresetSizes = 16844087; // 0x1010537 field public static final int autoSizeStepGranularity = 16844086; // 0x1010536 - field public static final int autoSizeStepSizeSet = 16844087; // 0x1010537 field public static final int autoSizeText = 16844085; // 0x1010535 field public static final int autoStart = 16843445; // 0x10102b5 field public static final deprecated int autoText = 16843114; // 0x101016a @@ -5513,6 +5513,7 @@ package android.app { public final class NotificationChannelGroup implements android.os.Parcelable { ctor public NotificationChannelGroup(java.lang.String, java.lang.CharSequence); ctor protected NotificationChannelGroup(android.os.Parcel); + method public android.app.NotificationChannelGroup clone(); method public int describeContents(); method public java.util.List getChannels(); method public java.lang.String getId(); @@ -50699,7 +50700,7 @@ package android.widget { method public int getAutoSizeMaxTextSize(); method public int getAutoSizeMinTextSize(); method public int getAutoSizeStepGranularity(); - method public int[] getAutoSizeTextPresetSizes(); + method public int[] getAutoSizeTextAvailableSizes(); method public int getAutoSizeTextType(); method public int getBreakStrategy(); method public int getCompoundDrawablePadding(); @@ -50907,7 +50908,7 @@ package android.widget { method public void setTypeface(android.graphics.Typeface); method public void setWidth(int); field public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // 0x0 - field public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; // 0x1 + field public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; // 0x1 } public static final class TextView.BufferType extends java.lang.Enum { diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 20e325cb6d9e6..17cd446c3d60b 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -271,7 +271,7 @@ import java.util.Locale; * @attr ref android.R.styleable#TextView_autoSizeMinTextSize * @attr ref android.R.styleable#TextView_autoSizeMaxTextSize * @attr ref android.R.styleable#TextView_autoSizeStepGranularity - * @attr ref android.R.styleable#TextView_autoSizeStepSizeSet + * @attr ref android.R.styleable#TextView_autoSizePresetSizes */ @RemoteView public class TextView extends View implements ViewTreeObserver.OnPreDrawListener { @@ -698,9 +698,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public static final int AUTO_SIZE_TEXT_TYPE_NONE = 0; // The TextView performs uniform horizontal and vertical text size scaling to fit within the // container. - public static final int AUTO_SIZE_TEXT_TYPE_XY = 1; + public static final int AUTO_SIZE_TEXT_TYPE_UNIFORM = 1; /** @hide */ - @IntDef({AUTO_SIZE_TEXT_TYPE_NONE, AUTO_SIZE_TEXT_TYPE_XY}) + @IntDef({AUTO_SIZE_TEXT_TYPE_NONE, AUTO_SIZE_TEXT_TYPE_UNIFORM}) @Retention(RetentionPolicy.SOURCE) public @interface AutoSizeTextType {} // Default minimum size for auto-sizing text in scaled pixels. {@see #setAutoSizeMinTextSize}. @@ -725,7 +725,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener // Specifies whether auto-size should use the provided auto size steps set or if it should // build the steps set using mAutoSizeMinTextSizeInPx, mAutoSizeMaxTextSizeInPx and // mAutoSizeStepGranularityInPx. - private boolean mHasPredefinedAutoSizeSet = false; + private boolean mHasPresetAutoSizeValues = false; // Watcher used to notify changes to auto-fill manager. private AutoFillChangeWatcher mAutoFillChangeWatcher; @@ -1318,12 +1318,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mAutoSizeMaxTextSizeInPx = a.getDimensionPixelSize(attr, 0); break; - case com.android.internal.R.styleable.TextView_autoSizeStepSizeSet: + case com.android.internal.R.styleable.TextView_autoSizePresetSizes: final int autoSizeStepSizeArrayResId = a.getResourceId(attr, 0); if (autoSizeStepSizeArrayResId > 0) { final TypedArray autoSizePreDefTextSizes = a.getResources() .obtainTypedArray(autoSizeStepSizeArrayResId); - setupAutoSizeStepSizeSet(autoSizePreDefTextSizes); + setupAutoSizePresetSizes(autoSizePreDefTextSizes); autoSizePreDefTextSizes.recycle(); } break; @@ -1601,7 +1601,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_YES); } - setupAutoSizeTextXY(); + setupAutoSizeText(); } /** @@ -1610,7 +1610,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * * @param autoSizeTextType the type of auto-size. Must be one of * {@link TextView#AUTO_SIZE_TEXT_TYPE_NONE} or - * {@link TextView#AUTO_SIZE_TEXT_TYPE_XY} + * {@link TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM} * * @attr ref android.R.styleable#TextView_autoSizeText * @@ -1630,10 +1630,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mNeedsAutoSizeText = false; } break; - case AUTO_SIZE_TEXT_TYPE_XY: - if (mAutoSizeTextType != AUTO_SIZE_TEXT_TYPE_XY) { - mAutoSizeTextType = AUTO_SIZE_TEXT_TYPE_XY; - setupAutoSizeTextXY(); + case AUTO_SIZE_TEXT_TYPE_UNIFORM: + if (mAutoSizeTextType != AUTO_SIZE_TEXT_TYPE_UNIFORM) { + mAutoSizeTextType = AUTO_SIZE_TEXT_TYPE_UNIFORM; + setupAutoSizeText(); } break; default: @@ -1648,7 +1648,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * * @return an {@code int} corresponding to one of the auto-size types: * {@link TextView#AUTO_SIZE_TEXT_TYPE_NONE} or - * {@link TextView#AUTO_SIZE_TEXT_TYPE_XY} + * {@link TextView#AUTO_SIZE_TEXT_TYPE_UNIFORM} * * @attr ref android.R.styleable#TextView_autoSizeText * @@ -1678,8 +1678,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (supportsAutoSizeText()) { mAutoSizeStepGranularityInPx = (int) TypedValue.applyDimension( unit, size, getResources().getDisplayMetrics()); - mHasPredefinedAutoSizeSet = false; - setupAutoSizeTextXY(); + mHasPresetAutoSizeValues = false; + setupAutoSizeText(); } } @@ -1711,8 +1711,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (supportsAutoSizeText()) { mAutoSizeMinTextSizeInPx = (int) TypedValue.applyDimension( unit, size, getResources().getDisplayMetrics()); - mHasPredefinedAutoSizeSet = false; - setupAutoSizeTextXY(); + mHasPresetAutoSizeValues = false; + setupAutoSizeText(); } } @@ -1745,8 +1745,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener if (supportsAutoSizeText()) { mAutoSizeMaxTextSizeInPx = (int) TypedValue.applyDimension( unit, size, getResources().getDisplayMetrics()); - mHasPredefinedAutoSizeSet = false; - setupAutoSizeTextXY(); + mHasPresetAutoSizeValues = false; + setupAutoSizeText(); } } @@ -1774,25 +1774,25 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * * @param presetSizes an {@code int} array of sizes in pixels * - * @attr ref android.R.styleable#TextView_autoSizeStepSizeSet + * @attr ref android.R.styleable#TextView_autoSizePresetSizes * - * @see #getAutoSizeTextPresetSizes() + * @see #getAutoSizeTextAvailableSizes() */ public void setAutoSizeTextPresetSizes(@NonNull int[] presetSizes) { if (supportsAutoSizeText()) { if (presetSizes.length > 0) { - mAutoSizeTextSizesInPx = cleanupAutoSizePredefinedSizes(presetSizes); + mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(presetSizes); final int sizesLength = mAutoSizeTextSizesInPx.length; - mHasPredefinedAutoSizeSet = sizesLength > 0; - if (mHasPredefinedAutoSizeSet) { + mHasPresetAutoSizeValues = sizesLength > 0; + if (mHasPresetAutoSizeValues) { mAutoSizeMinTextSizeInPx = mAutoSizeTextSizesInPx[0]; mAutoSizeMaxTextSizeInPx = mAutoSizeTextSizesInPx[sizesLength - 1]; mAutoSizeStepGranularityInPx = 0; } } else { - mHasPredefinedAutoSizeSet = false; + mHasPresetAutoSizeValues = false; } - setupAutoSizeTextXY(); + setupAutoSizeText(); } } @@ -1804,11 +1804,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener * @see #setAutoSizeMaxTextSize(int, float) * @see #setAutoSizeStepGranularity(int, float) */ - public int[] getAutoSizeTextPresetSizes() { + public int[] getAutoSizeTextAvailableSizes() { return mAutoSizeTextSizesInPx; } - private void setupAutoSizeStepSizeSet(TypedArray textSizes) { + private void setupAutoSizePresetSizes(TypedArray textSizes) { final int textSizesLength = textSizes.length(); final int[] parsedSizes = new int[textSizesLength]; @@ -1816,39 +1816,39 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener for (int i = 0; i < textSizesLength; i++) { parsedSizes[i] = textSizes.getDimensionPixelSize(i, -1); } - mAutoSizeTextSizesInPx = cleanupAutoSizePredefinedSizes(parsedSizes); - mHasPredefinedAutoSizeSet = mAutoSizeTextSizesInPx.length > 0; + mAutoSizeTextSizesInPx = cleanupAutoSizePresetSizes(parsedSizes); + mHasPresetAutoSizeValues = mAutoSizeTextSizesInPx.length > 0; } } // Returns distinct sorted positive values. - private int[] cleanupAutoSizePredefinedSizes(int[] predefinedValues) { - final int predefinedValuesLength = predefinedValues.length; - if (predefinedValuesLength == 0) { - return predefinedValues; + private int[] cleanupAutoSizePresetSizes(int[] presetValues) { + final int presetValuesLength = presetValues.length; + if (presetValuesLength == 0) { + return presetValues; } - Arrays.sort(predefinedValues); + Arrays.sort(presetValues); final IntArray uniqueValidSizes = new IntArray(); - for (int i = 0; i < predefinedValuesLength; i++) { - final int currentPredefinedValue = predefinedValues[i]; + for (int i = 0; i < presetValuesLength; i++) { + final int currentPresetValue = presetValues[i]; - if (currentPredefinedValue > 0 - && uniqueValidSizes.binarySearch(currentPredefinedValue) < 0) { - uniqueValidSizes.add(currentPredefinedValue); + if (currentPresetValue > 0 + && uniqueValidSizes.binarySearch(currentPresetValue) < 0) { + uniqueValidSizes.add(currentPresetValue); } } - return predefinedValuesLength == uniqueValidSizes.size() - ? predefinedValues + return presetValuesLength == uniqueValidSizes.size() + ? presetValues : uniqueValidSizes.toArray(); } - private void setupAutoSizeTextXY() { - if (supportsAutoSizeText() && mAutoSizeTextType == AUTO_SIZE_TEXT_TYPE_XY) { + private void setupAutoSizeText() { + if (supportsAutoSizeText() && mAutoSizeTextType == AUTO_SIZE_TEXT_TYPE_UNIFORM) { // Calculate the sizes set based on minimum size, maximum size and step size if we do // not have a predefined set of sizes or if the current sizes array is empty. - if (!mHasPredefinedAutoSizeSet || mAutoSizeTextSizesInPx.length == 0) { + if (!mHasPresetAutoSizeValues || mAutoSizeTextSizesInPx.length == 0) { // Set valid defaults. if (mAutoSizeMinTextSizeInPx <= 0) { mAutoSizeMinTextSizeInPx = (int) TypedValue.applyDimension( diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml index aeba589766378..a3bad54c1297a 100644 --- a/core/res/res/values/attrs.xml +++ b/core/res/res/values/attrs.xml @@ -4714,16 +4714,16 @@ - + + autoSizePresetSizes if set. --> - + diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml index 1dbd567db453e..34659aaa96795 100644 --- a/core/res/res/values/public.xml +++ b/core/res/res/values/public.xml @@ -2767,7 +2767,7 @@ - +