diff options
author | Seigo Nonaka <nona@google.com> | 2016-02-23 03:57:58 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-02-23 03:57:58 +0000 |
commit | dbf5c2776bb2de1baf1cd5e53ce21f5bd3226052 (patch) | |
tree | d0742dc81ea6d3ed0c951f59ff924211f7d42732 | |
parent | 30bf8a7c05925a970f1cab87c38bec8dd97fa82e (diff) | |
parent | 533a01ea8438bb102b0dbc71f6c4ef356b260ed5 (diff) | |
download | android_frameworks_minikin-dbf5c2776bb2de1baf1cd5e53ce21f5bd3226052.tar.gz android_frameworks_minikin-dbf5c2776bb2de1baf1cd5e53ce21f5bd3226052.tar.bz2 android_frameworks_minikin-dbf5c2776bb2de1baf1cd5e53ce21f5bd3226052.zip |
Merge "Support Hanb script." into nyc-dev
-rw-r--r-- | libs/minikin/FontLanguage.cpp | 7 | ||||
-rw-r--r-- | libs/minikin/FontLanguage.h | 17 | ||||
-rw-r--r-- | tests/FontFamilyTest.cpp | 12 |
3 files changed, 28 insertions, 8 deletions
diff --git a/libs/minikin/FontLanguage.cpp b/libs/minikin/FontLanguage.cpp index 8e5c9c4..db63059 100644 --- a/libs/minikin/FontLanguage.cpp +++ b/libs/minikin/FontLanguage.cpp @@ -61,9 +61,16 @@ FontLanguage::FontLanguage(const char* buf, size_t length) : FontLanguage() { uint8_t FontLanguage::scriptToSubScriptBits(uint32_t script) { uint8_t subScriptBits = 0u; switch (script) { + case SCRIPT_TAG('B', 'o', 'p', 'o'): + subScriptBits = kBopomofoFlag; + break; case SCRIPT_TAG('H', 'a', 'n', 'g'): subScriptBits = kHangulFlag; break; + case SCRIPT_TAG('H', 'a', 'n', 'b'): + // Bopomofo is almost exclusively used in Taiwan. + subScriptBits = kHanFlag | kBopomofoFlag; + break; case SCRIPT_TAG('H', 'a', 'n', 'i'): subScriptBits = kHanFlag; break; diff --git a/libs/minikin/FontLanguage.h b/libs/minikin/FontLanguage.h index ee0b505..1a20480 100644 --- a/libs/minikin/FontLanguage.h +++ b/libs/minikin/FontLanguage.h @@ -68,14 +68,15 @@ private: // mLanguage = 0 means the FontLanguage is unsupported. uint32_t mLanguage; - // For faster comparing, use 7 bits for specific scripts. - static const uint8_t kEmojiFlag = 1u; - static const uint8_t kHanFlag = 1u << 1; - static const uint8_t kHangulFlag = 1u << 2; - static const uint8_t kHiraganaFlag = 1u << 3; - static const uint8_t kKatakanaFlag = 1u << 4; - static const uint8_t kSimplifiedChineseFlag = 1u << 5; - static const uint8_t kTraditionalChineseFlag = 1u << 6; + // For faster comparing, use 8 bits for specific scripts. + static const uint8_t kBopomofoFlag = 1u; + static const uint8_t kEmojiFlag = 1u << 1; + static const uint8_t kHanFlag = 1u << 2; + static const uint8_t kHangulFlag = 1u << 3; + static const uint8_t kHiraganaFlag = 1u << 4; + static const uint8_t kKatakanaFlag = 1u << 5; + static const uint8_t kSimplifiedChineseFlag = 1u << 6; + static const uint8_t kTraditionalChineseFlag = 1u << 7; uint8_t mSubScriptBits; static uint8_t scriptToSubScriptBits(uint32_t script); diff --git a/tests/FontFamilyTest.cpp b/tests/FontFamilyTest.cpp index 11407a3..34a9296 100644 --- a/tests/FontFamilyTest.cpp +++ b/tests/FontFamilyTest.cpp @@ -131,6 +131,7 @@ TEST_F(FontLanguageTest, ScriptMatchTest) { { "zh-Hani", "Hani", SUPPORTED }, { "ko-Kore", "Kore", SUPPORTED }, { "ko-Hang", "Hang", SUPPORTED }, + { "zh-Hanb", "Hanb", SUPPORTED }, // Japanese supports Hiragana, Katakanara, etc. { "ja-Jpan", "Hira", SUPPORTED }, @@ -142,6 +143,10 @@ TEST_F(FontLanguageTest, ScriptMatchTest) { // Chinese supports Han. { "zh-Hans", "Hani", SUPPORTED }, { "zh-Hant", "Hani", SUPPORTED }, + { "zh-Hanb", "Hani", SUPPORTED }, + + // Hanb supports Bopomofo. + { "zh-Hanb", "Bopo", SUPPORTED }, // Korean supports Hangul. { "ko-Kore", "Hang", SUPPORTED }, @@ -176,12 +181,19 @@ TEST_F(FontLanguageTest, ScriptMatchTest) { // Kanji doesn't support Chinese, etc. { "zh-Hani", "Hant", NOT_SUPPORTED }, { "zh-Hani", "Hans", NOT_SUPPORTED }, + { "zh-Hani", "Hanb", NOT_SUPPORTED }, // Hangul doesn't support Korean, etc. { "ko-Hang", "Kore", NOT_SUPPORTED }, { "ko-Hani", "Kore", NOT_SUPPORTED }, { "ko-Hani", "Hang", NOT_SUPPORTED }, { "ko-Hang", "Hani", NOT_SUPPORTED }, + + // Han with botomofo doesn't support simplified Chinese, etc. + { "zh-Hanb", "Hant", NOT_SUPPORTED }, + { "zh-Hanb", "Hans", NOT_SUPPORTED }, + { "zh-Hanb", "Jpan", NOT_SUPPORTED }, + { "zh-Hanb", "Kore", NOT_SUPPORTED }, }; for (auto testCase : testCases) { |