Loading core/java/android/text/flags/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -75,3 +75,10 @@ flag { description: "A feature flag that implements line break word style auto." bug: "280005585" } flag { name: "inter_character_justification" namespace: "text" description: "A feature flag that implement inter character justification." bug: "283193133" } libs/hwui/hwui/Paint.h +15 −11 Original line number Diff line number Diff line Loading @@ -17,19 +17,19 @@ #ifndef ANDROID_GRAPHICS_PAINT_H_ #define ANDROID_GRAPHICS_PAINT_H_ #include "Typeface.h" #include <cutils/compiler.h> #include <SkFont.h> #include <SkPaint.h> #include <SkSamplingOptions.h> #include <string> #include <minikin/FontFamily.h> #include <cutils/compiler.h> #include <minikin/FamilyVariant.h> #include <minikin/FontFamily.h> #include <minikin/FontFeature.h> #include <minikin/Hyphenator.h> #include <string> #include "Typeface.h" namespace android { class BlurDrawLooper; Loading Loading @@ -82,11 +82,15 @@ public: float getWordSpacing() const { return mWordSpacing; } void setFontFeatureSettings(const std::string& fontFeatureSettings) { mFontFeatureSettings = fontFeatureSettings; void setFontFeatureSettings(std::string_view fontFeatures) { mFontFeatureSettings = minikin::FontFeature::parse(fontFeatures); } std::string getFontFeatureSettings() const { return mFontFeatureSettings; } void resetFontFeatures() { mFontFeatureSettings.clear(); } const std::vector<minikin::FontFeature>& getFontFeatureSettings() const { return mFontFeatureSettings; } void setMinikinLocaleListId(uint32_t minikinLocaleListId) { mMinikinLocaleListId = minikinLocaleListId; Loading Loading @@ -170,7 +174,7 @@ private: float mLetterSpacing = 0; float mWordSpacing = 0; std::string mFontFeatureSettings; std::vector<minikin::FontFeature> mFontFeatureSettings; uint32_t mMinikinLocaleListId; std::optional<minikin::FamilyVariant> mFamilyVariant; uint32_t mHyphenEdit = 0; Loading libs/hwui/jni/Paint.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <cassert> #include <cstring> #include <memory> #include <string_view> #include <vector> #include "ColorFilter.h" Loading Loading @@ -690,10 +691,11 @@ namespace PaintGlue { jstring settings) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); if (!settings) { paint->setFontFeatureSettings(std::string()); paint->resetFontFeatures(); } else { ScopedUtfChars settingsChars(env, settings); paint->setFontFeatureSettings(std::string(settingsChars.c_str(), settingsChars.size())); paint->setFontFeatureSettings( std::string_view(settingsChars.c_str(), settingsChars.size())); } } Loading Loading
core/java/android/text/flags/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -75,3 +75,10 @@ flag { description: "A feature flag that implements line break word style auto." bug: "280005585" } flag { name: "inter_character_justification" namespace: "text" description: "A feature flag that implement inter character justification." bug: "283193133" }
libs/hwui/hwui/Paint.h +15 −11 Original line number Diff line number Diff line Loading @@ -17,19 +17,19 @@ #ifndef ANDROID_GRAPHICS_PAINT_H_ #define ANDROID_GRAPHICS_PAINT_H_ #include "Typeface.h" #include <cutils/compiler.h> #include <SkFont.h> #include <SkPaint.h> #include <SkSamplingOptions.h> #include <string> #include <minikin/FontFamily.h> #include <cutils/compiler.h> #include <minikin/FamilyVariant.h> #include <minikin/FontFamily.h> #include <minikin/FontFeature.h> #include <minikin/Hyphenator.h> #include <string> #include "Typeface.h" namespace android { class BlurDrawLooper; Loading Loading @@ -82,11 +82,15 @@ public: float getWordSpacing() const { return mWordSpacing; } void setFontFeatureSettings(const std::string& fontFeatureSettings) { mFontFeatureSettings = fontFeatureSettings; void setFontFeatureSettings(std::string_view fontFeatures) { mFontFeatureSettings = minikin::FontFeature::parse(fontFeatures); } std::string getFontFeatureSettings() const { return mFontFeatureSettings; } void resetFontFeatures() { mFontFeatureSettings.clear(); } const std::vector<minikin::FontFeature>& getFontFeatureSettings() const { return mFontFeatureSettings; } void setMinikinLocaleListId(uint32_t minikinLocaleListId) { mMinikinLocaleListId = minikinLocaleListId; Loading Loading @@ -170,7 +174,7 @@ private: float mLetterSpacing = 0; float mWordSpacing = 0; std::string mFontFeatureSettings; std::vector<minikin::FontFeature> mFontFeatureSettings; uint32_t mMinikinLocaleListId; std::optional<minikin::FamilyVariant> mFamilyVariant; uint32_t mHyphenEdit = 0; Loading
libs/hwui/jni/Paint.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ #include <cassert> #include <cstring> #include <memory> #include <string_view> #include <vector> #include "ColorFilter.h" Loading Loading @@ -690,10 +691,11 @@ namespace PaintGlue { jstring settings) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); if (!settings) { paint->setFontFeatureSettings(std::string()); paint->resetFontFeatures(); } else { ScopedUtfChars settingsChars(env, settings); paint->setFontFeatureSettings(std::string(settingsChars.c_str(), settingsChars.size())); paint->setFontFeatureSettings( std::string_view(settingsChars.c_str(), settingsChars.size())); } } Loading