Loading core/java/android/widget/TextView.java +16 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.widget; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.graphics.Paint.NEW_FONT_VARIATION_MANAGEMENT; import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT; import static android.view.ContentInfo.SOURCE_AUTOFILL; import static android.view.ContentInfo.SOURCE_CLIPBOARD; Loading Loading @@ -5542,7 +5543,21 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener && fontVariationSettings.equals(existingSettings))) { return true; } boolean effective = mTextPaint.setFontVariationSettings(fontVariationSettings); final boolean useFontVariationStore = Flags.typefaceRedesignReadonly() && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT); boolean effective; if (useFontVariationStore) { if (mFontWeightAdjustment != 0 && mFontWeightAdjustment != Configuration.FONT_WEIGHT_ADJUSTMENT_UNDEFINED) { mTextPaint.setFontVariationSettings(fontVariationSettings, mFontWeightAdjustment); } else { mTextPaint.setFontVariationSettings(fontVariationSettings); } effective = true; } else { effective = mTextPaint.setFontVariationSettings(fontVariationSettings); } if (effective && mLayout != null) { nullLayouts(); Loading graphics/java/android/graphics/Paint.java +16 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.fonts.FontStyle; import android.graphics.fonts.FontVariationAxis; import android.graphics.text.TextRunShaper; import android.os.Build; Loading Loading @@ -2141,6 +2142,14 @@ public class Paint { * @see FontVariationAxis */ public boolean setFontVariationSettings(String fontVariationSettings) { return setFontVariationSettings(fontVariationSettings, 0 /* wght adjust */); } /** * Set font variation settings with weight adjustment * @hide */ public boolean setFontVariationSettings(String fontVariationSettings, int wghtAdjust) { final boolean useFontVariationStore = Flags.typefaceRedesignReadonly() && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT); if (useFontVariationStore) { Loading @@ -2154,8 +2163,13 @@ public class Paint { long builderPtr = nCreateFontVariationBuilder(axes.length); for (int i = 0; i < axes.length; ++i) { nAddFontVariationToBuilder(builderPtr, axes[i].getOpenTypeTagValue(), axes[i].getStyleValue()); int tag = axes[i].getOpenTypeTagValue(); float value = axes[i].getStyleValue(); if (tag == 0x77676874 /* wght */) { value = Math.clamp(value + wghtAdjust, FontStyle.FONT_WEIGHT_MIN, FontStyle.FONT_WEIGHT_MAX); } nAddFontVariationToBuilder(builderPtr, tag, value); } nSetFontVariationOverride(mNativePaint, builderPtr); mFontVariationSettings = fontVariationSettings; Loading Loading
core/java/android/widget/TextView.java +16 −1 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.widget; import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL; import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.graphics.Paint.NEW_FONT_VARIATION_MANAGEMENT; import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT; import static android.view.ContentInfo.SOURCE_AUTOFILL; import static android.view.ContentInfo.SOURCE_CLIPBOARD; Loading Loading @@ -5542,7 +5543,21 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener && fontVariationSettings.equals(existingSettings))) { return true; } boolean effective = mTextPaint.setFontVariationSettings(fontVariationSettings); final boolean useFontVariationStore = Flags.typefaceRedesignReadonly() && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT); boolean effective; if (useFontVariationStore) { if (mFontWeightAdjustment != 0 && mFontWeightAdjustment != Configuration.FONT_WEIGHT_ADJUSTMENT_UNDEFINED) { mTextPaint.setFontVariationSettings(fontVariationSettings, mFontWeightAdjustment); } else { mTextPaint.setFontVariationSettings(fontVariationSettings); } effective = true; } else { effective = mTextPaint.setFontVariationSettings(fontVariationSettings); } if (effective && mLayout != null) { nullLayouts(); Loading
graphics/java/android/graphics/Paint.java +16 −2 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledSince; import android.compat.annotation.UnsupportedAppUsage; import android.graphics.fonts.FontStyle; import android.graphics.fonts.FontVariationAxis; import android.graphics.text.TextRunShaper; import android.os.Build; Loading Loading @@ -2141,6 +2142,14 @@ public class Paint { * @see FontVariationAxis */ public boolean setFontVariationSettings(String fontVariationSettings) { return setFontVariationSettings(fontVariationSettings, 0 /* wght adjust */); } /** * Set font variation settings with weight adjustment * @hide */ public boolean setFontVariationSettings(String fontVariationSettings, int wghtAdjust) { final boolean useFontVariationStore = Flags.typefaceRedesignReadonly() && CompatChanges.isChangeEnabled(NEW_FONT_VARIATION_MANAGEMENT); if (useFontVariationStore) { Loading @@ -2154,8 +2163,13 @@ public class Paint { long builderPtr = nCreateFontVariationBuilder(axes.length); for (int i = 0; i < axes.length; ++i) { nAddFontVariationToBuilder(builderPtr, axes[i].getOpenTypeTagValue(), axes[i].getStyleValue()); int tag = axes[i].getOpenTypeTagValue(); float value = axes[i].getStyleValue(); if (tag == 0x77676874 /* wght */) { value = Math.clamp(value + wghtAdjust, FontStyle.FONT_WEIGHT_MIN, FontStyle.FONT_WEIGHT_MAX); } nAddFontVariationToBuilder(builderPtr, tag, value); } nSetFontVariationOverride(mNativePaint, builderPtr); mFontVariationSettings = fontVariationSettings; Loading