diff --git a/java/res/values-ar/donottranslate-more-keys.xml b/java/res/values-ar/donottranslate-more-keys.xml index 6a14a3c55e5b82b2608e1b1dadc721d7617ec392..9a7a0267aca2794827ec7ec8f2921129104f6911 100644 --- a/java/res/values-ar/donottranslate-more-keys.xml +++ b/java/res/values-ar/donottranslate-more-keys.xml @@ -102,8 +102,43 @@ <string name="more_keys_for_bullet">♪</string> <!-- \u066d: ARABIC FIVE POINTED STAR --> <string name="more_keys_for_star">★,\u066d</string> - <!-- \ufd3e: ORNATE LEFT PARENTHESIS --> - <string name="more_keys_for_left_parenthesis">[,{,<,\ufd3e</string> - <!-- \ufd3f: ORNATE RIGHT PARENTHESIS --> - <string name="more_keys_for_right_parenthesis">],},>,\ufd3f</string> + <!-- The all letters need to be mirrored are found at + http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> + <string name="output_text_for_left_parenthesis">)</string> + <string name="output_text_for_right_parenthesis">(</string> + <!-- \ufd3e: ORNATE LEFT PARENTHESIS + \ufd3f: ORNATE RIGHT PARENTHESIS --> + <string name="more_keys_for_left_parenthesis">[|],{|},<|>,\ufd3e|\ufd3f</string> + <string name="more_keys_for_right_parenthesis">]|[,}|{,>|<,\ufd3f|\ufd3e</string> + <string name="output_text_for_less_than">></string> + <string name="output_text_for_greater_than"><</string> + <!-- \u2264: LESS-THAN OR EQUAL TO + \u2265: GREATER-THAN EQUAL TO + \u00ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + \u00bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \u2039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK + \u203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + The following characters don't need BIDI mirroring. + \u2018: LEFT SINGLE QUOTATION MARK + \u2019: RIGHT SINGLE QUOTATION MARK + \u201a: SINGLE LOW-9 QUOTATION MARK + \u201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK + \u201c: LEFT DOUBLE QUOTATION MARK + \u201d: RIGHT DOUBLE QUOTATION MARK + \u201e: DOUBLE LOW-9 QUOTATION MARK + \u201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> + <string name="more_keys_for_less_than">\u2264|\u2265,\u00ab|\u00bb,\u2039|\u203a</string> + <string name="more_keys_for_greater_than">\u2265|\u2264,\u00bb|\u00ab,\u203a|\u2039</string> + <string name="output_text_for_left_square_bracket">]</string> + <string name="output_text_for_right_square_bracket">[</string> + <string name="output_text_for_left_curly_bracket">}</string> + <string name="output_text_for_right_curly_bracket">{</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb</string> --> + <!-- The 4-more keys will be displayed in order of "3,1,2,4". --> + <string name="more_keys_for_double_quote">\u201d,\u00ab|\u00bb,\u201c,\u00bb|\u00ab</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_tablet_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb,\u2018,\u2019,\u201a,\u201b</string> --> + <!-- The 8-more keys with maxMoreKeysColumn=4 will be displayed in order of "3,1,2,4|7,5,6,8". --> + <string name="more_keys_for_tablet_double_quote">\u201d,\u00ab|\u00bb,\u201c,\u00bb|\u00ab,\u2019,\u201a,\u2018,\u201b</string> </resources> diff --git a/java/res/values-ar/donottranslate.xml b/java/res/values-ar/donottranslate.xml index c51ac502a13818e250e05cb22133c35fcb2773b5..a9aad4e3c24c36fd26119c7420e797394afb2077 100644 --- a/java/res/values-ar/donottranslate.xml +++ b/java/res/values-ar/donottranslate.xml @@ -19,7 +19,7 @@ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBinaryProperties.txt --> + http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> <!-- Symbols that are suggested between words --> <string name="suggested_punctuations">!,?,\\,,:,;,\u0022,(|),)|(,\u0027,-,/,@,_</string> </resources> diff --git a/java/res/values-iw/donottranslate-more-keys.xml b/java/res/values-iw/donottranslate-more-keys.xml index 829486f7bcfe96404ebbaa3e1d8d9cd0e747263f..6fc3360027b4024e41997ed674c0c6c2dc3adeb7 100644 --- a/java/res/values-iw/donottranslate-more-keys.xml +++ b/java/res/values-iw/donottranslate-more-keys.xml @@ -20,4 +20,41 @@ <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="more_keys_for_star">★</string> <string name="more_keys_for_plus">±,﬩</string> + <!-- The all letters need to be mirrored are found at + http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> + <string name="output_text_for_left_parenthesis">)</string> + <string name="output_text_for_right_parenthesis">(</string> + <string name="more_keys_for_left_parenthesis">[|],{|},<|></string> + <string name="more_keys_for_right_parenthesis">]|[,}|{,>|<</string> + <string name="output_text_for_less_than">></string> + <string name="output_text_for_greater_than"><</string> + <!-- \u2264: LESS-THAN OR EQUAL TO + \u2265: GREATER-THAN EQUAL TO + \u00ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + \u00bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \u2039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK + \u203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + The following characters don't need BIDI mirroring. + \u2018: LEFT SINGLE QUOTATION MARK + \u2019: RIGHT SINGLE QUOTATION MARK + \u201a: SINGLE LOW-9 QUOTATION MARK + \u201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK + \u201c: LEFT DOUBLE QUOTATION MARK + \u201d: RIGHT DOUBLE QUOTATION MARK + \u201e: DOUBLE LOW-9 QUOTATION MARK + \u201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> + <string name="more_keys_for_less_than">\u2264|\u2265,\u00ab|\u00bb,\u2039|\u203a</string> + <string name="more_keys_for_greater_than">\u2265|\u2264,\u00bb|\u00ab,\u203a|\u2039</string> + <string name="output_text_for_left_square_bracket">]</string> + <string name="output_text_for_right_square_bracket">[</string> + <string name="output_text_for_left_curly_bracket">}</string> + <string name="output_text_for_right_curly_bracket">{</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb</string> --> + <!-- The 4-more keys will be displayed in order of "3,1,2,4". --> + <string name="more_keys_for_double_quote">\u201d,\u00ab|\u00bb,\u201c,\u00bb|\u00ab</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_tablet_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb,\u2018,\u2019,\u201a,\u201b</string> --> + <!-- The 8-more keys with maxMoreKeysColumn=4 will be displayed in order of "3,1,2,4|7,5,6,8". --> + <string name="more_keys_for_tablet_double_quote">\u201d,\u00ab|\u00bb,\u201c,\u00bb|\u00ab,\u2019,\u201a,\u2018,\u201b</string> </resources> diff --git a/java/res/values-iw/donottranslate.xml b/java/res/values-iw/donottranslate.xml index c51ac502a13818e250e05cb22133c35fcb2773b5..a9aad4e3c24c36fd26119c7420e797394afb2077 100644 --- a/java/res/values-iw/donottranslate.xml +++ b/java/res/values-iw/donottranslate.xml @@ -19,7 +19,7 @@ --> <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <!-- The all letters need to be mirrored are found at - http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBinaryProperties.txt --> + http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> <!-- Symbols that are suggested between words --> <string name="suggested_punctuations">!,?,\\,,:,;,\u0022,(|),)|(,\u0027,-,/,@,_</string> </resources> diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index d859ae3ea6955b788cab6af0379e68d5cb40db90..dd2206da81a4bdd9a3fdf416b887f4e7db85c51c 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -202,8 +202,6 @@ <attr name="verticalGap" format="dimension|fraction" /> <!-- More keys keyboard layout template --> <attr name="moreKeysTemplate" format="reference" /> - <!-- True if the keyboard is Right-To-Left --> - <attr name="isRtlKeyboard" format="boolean" /> <!-- Icon set for key top and key preview. --> <attr name="iconShiftKey" format="reference" /> <attr name="iconDeleteKey" format="reference" /> diff --git a/java/res/values/donottranslate-more-keys.xml b/java/res/values/donottranslate-more-keys.xml index 07f4bf38b22f81580cbbfac9b919662155073795..07e711a02bedacdf141c4cbea3a242dd11a9b807 100644 --- a/java/res/values/donottranslate-more-keys.xml +++ b/java/res/values/donottranslate-more-keys.xml @@ -112,6 +112,43 @@ <string name="more_keys_for_bullet">♪,♥,â™ ,♦,♣</string> <string name="more_keys_for_star">†,‡,★</string> <string name="more_keys_for_plus">±</string> + <!-- The all letters need to be mirrored are found at + http://www.unicode.org/Public/6.1.0/ucd/BidiMirroring.txt --> + <string name="output_text_for_left_parenthesis">(</string> + <string name="output_text_for_right_parenthesis">)</string> <string name="more_keys_for_left_parenthesis">[,{,<</string> <string name="more_keys_for_right_parenthesis">],},></string> + <string name="output_text_for_less_than"><</string> + <string name="output_text_for_greater_than">></string> + <!-- \u2264: LESS-THAN OR EQUAL TO + \u2265: GREATER-THAN EQUAL TO + \u00ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + \u00bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + \u2039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK + \u203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + The following characters don't need BIDI mirroring. + \u2018: LEFT SINGLE QUOTATION MARK + \u2019: RIGHT SINGLE QUOTATION MARK + \u201a: SINGLE LOW-9 QUOTATION MARK + \u201b: SINGLE HIGH-REVERSED-9 QUOTATION MARK + \u201c: LEFT DOUBLE QUOTATION MARK + \u201d: RIGHT DOUBLE QUOTATION MARK + \u201e: DOUBLE LOW-9 QUOTATION MARK + \u201f: DOUBLE HIGH-REVERSED-9 QUOTATION MARK --> + <string name="more_keys_for_less_than">\u2264,\u00ab,\u2039</string> + <string name="more_keys_for_greater_than">\u2265,\u00bb,\u203a</string> + <string name="output_text_for_left_square_bracket">[</string> + <string name="output_text_for_right_square_bracket">]</string> + <string name="output_text_for_left_curly_bracket">{</string> + <string name="output_text_for_right_curly_bracket">}</string> + <!-- The 4-more keys will be displayed in order of "3,1,2,4". --> + <string name="more_keys_for_single_quote">\u2019,\u201a,\u2018,\u201b</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb</string> --> + <!-- The 4-more keys will be displayed in order of "3,1,2,4". --> + <string name="more_keys_for_double_quote">\u201d,\u00ab,\u201c,\u00bb</string> + <!-- Note: Neither DroidSans nor Roboto have a glyph for DOUBLE HIGH-REVERSED-9 QUOTATION MARK. --> + <!-- <string name="more_keys_for_tablet_double_quote">\u201c,\u201d,\u201e,\u201f,\u00ab,\u00bb,\u2018,\u2019,\u201a,\u201b</string> --> + <!-- The 8-more keys with maxMoreKeysColumn=4 will be displayed in order of "3,1,2,4|7,5,6,8". --> + <string name="more_keys_for_tablet_double_quote">\u201d,\u00ab,\u201c,\u00bb,\u2019,\u201a,\u2018,\u201b</string> </resources> diff --git a/java/res/xml-sw600dp/rows_azerty.xml b/java/res/xml-sw600dp/rows_azerty.xml index c29d291ea2cc4d7e11aa423f5a7c938558081697..aabe6b0e8de88ab1526b1aa2dc72c03491712ef3 100644 --- a/java/res/xml-sw600dp/rows_azerty.xml +++ b/java/res/xml-sw600dp/rows_azerty.xml @@ -116,7 +116,10 @@ latin:keyLabel="n" latin:moreKeys="@string/more_keys_for_n" /> <Key - latin:keyLabel="\'" /> + latin:keyLabel="\'" + latin:keyHintLabel=":" + latin:moreKeys=":" + latin:keyStyle="hasShiftedLetterHintStyle" /> <include latin:keyboardLayout="@xml/keys_comma_period" /> <include diff --git a/java/res/xml-sw600dp/rows_symbols.xml b/java/res/xml-sw600dp/rows_symbols.xml index 701c35470f0bc4a7107be5547ccea6eebd983d50..c2dfe2f82b42f184105ebe47c6875c10a69b438f 100644 --- a/java/res/xml-sw600dp/rows_symbols.xml +++ b/java/res/xml-sw600dp/rows_symbols.xml @@ -95,12 +95,8 @@ <Key latin:keyLabel="+" latin:moreKeys="@string/more_keys_for_plus" /> - <Key - latin:keyLabel="(" - latin:moreKeys="[,{,<" /> - <Key - latin:keyLabel=")" - latin:moreKeys="],},>" /> + <include + latin:keyboardLayout="@xml/keys_parentheses" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-14.6%p" @@ -112,12 +108,8 @@ <Key latin:keyStyle="toMoreSymbolKeyStyle" latin:keyWidth="10.0%p" /> - <Key - latin:keyLabel="<" - latin:moreKeys="≤,«,‹" /> - <Key - latin:keyLabel=">" - latin:moreKeys="≥,»,›" /> + <include + latin:keyboardLayout="@xml/keys_less_greater" /> <Key latin:keyLabel="=" latin:moreKeys="≠,≈" /> @@ -126,8 +118,7 @@ latin:mode="url" > <Key - latin:keyLabel="\'" - latin:moreKeys="‘,’,‚,‛" /> + latin:keyLabel="\'" /> </case> <default> <Key @@ -166,11 +157,10 @@ latin:keyStyle="spaceKeyStyle" latin:keyXPos="30.750%p" latin:keyWidth="39.750%p" /> - <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> - <!-- latin:moreKeys="“,â€,„,‟,«,»,‘,’,‚,‛" --> <Key latin:keyLabel=""" - latin:moreKeys="“,â€,«,»,‘,’,‚,‛" /> + latin:moreKeys="@string/more_keys_for_tablet_double_quote" + latin:maxMoreKeysColumn="4" /> <Key latin:keyLabel="_" /> <Spacer diff --git a/java/res/xml-sw600dp/rows_symbols_shift.xml b/java/res/xml-sw600dp/rows_symbols_shift.xml index d3531dd39ac56d2e6fe97c399ec1db6604fc0401..6a640c06b4564d9777b05d1920308b63c79b6ab7 100644 --- a/java/res/xml-sw600dp/rows_symbols_shift.xml +++ b/java/res/xml-sw600dp/rows_symbols_shift.xml @@ -77,10 +77,8 @@ <Key latin:keyLabel="±" latin:moreKeys="∞" /> - <Key - latin:keyLabel="{" /> - <Key - latin:keyLabel="}" /> + <include + latin:keyboardLayout="@xml/keys_curly_brackets" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-14.6%p" @@ -102,10 +100,8 @@ latin:keyLabel="â„¢" /> <Key latin:keyLabel="â„…" /> - <Key - latin:keyLabel="[" /> - <Key - latin:keyLabel="]" /> + <include + latin:keyboardLayout="@xml/keys_square_brackets" /> <Key latin:keyLabel="¡" /> <Key diff --git a/java/res/xml-sw768dp/rows_azerty.xml b/java/res/xml-sw768dp/rows_azerty.xml index 886ebecaa7dae4ada6262dd94b4918d671ac6384..b9ef89822b59d421e944dc3b29676b616a0194bf 100644 --- a/java/res/xml-sw768dp/rows_azerty.xml +++ b/java/res/xml-sw768dp/rows_azerty.xml @@ -124,9 +124,9 @@ latin:moreKeys="@string/more_keys_for_n" /> <Key latin:keyLabel="\'" - latin:keyLabelFlags="hasShiftedLetterHint" latin:keyHintLabel=":" - latin:moreKeys=":" /> + latin:moreKeys=":" + latin:keyStyle="hasShiftedLetterHintStyle" /> <include latin:keyboardLayout="@xml/keys_comma_period" /> <Key diff --git a/java/res/xml-sw768dp/rows_symbols.xml b/java/res/xml-sw768dp/rows_symbols.xml index 7458b366a158996ca09c3a0414deae569c8d46d6..2ba935724a5ca2f1ada5376884fc7688261d6bea 100644 --- a/java/res/xml-sw768dp/rows_symbols.xml +++ b/java/res/xml-sw768dp/rows_symbols.xml @@ -102,12 +102,8 @@ <Key latin:keyLabel="+" latin:moreKeys="@string/more_keys_for_plus" /> - <Key - latin:keyLabel="(" - latin:moreKeys="[,{,<" /> - <Key - latin:keyLabel=")" - latin:moreKeys="],},>" /> + <include + latin:keyboardLayout="@xml/keys_parentheses" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-15.704%p" @@ -119,12 +115,8 @@ <Key latin:keyStyle="toMoreSymbolKeyStyle" latin:keyWidth="13.829%p" /> - <Key - latin:keyLabel="<" - latin:moreKeys="≤,«,‹" /> - <Key - latin:keyLabel=">" - latin:moreKeys="≥,»,›" /> + <include + latin:keyboardLayout="@xml/keys_less_greater" /> <Key latin:keyLabel="=" latin:moreKeys="≠,≈" /> @@ -133,8 +125,7 @@ latin:mode="url" > <Key - latin:keyLabel="\'" - latin:moreKeys="‘,’,‚,‛" /> + latin:keyLabel="\'" /> </case> <default> <Key @@ -181,11 +172,10 @@ latin:keyStyle="spaceKeyStyle" latin:keyXPos="31.250%p" latin:keyWidth="37.500%p" /> - <!-- Note: DroidSans doesn't have double-high-reversed-quotation '\u201f' glyph. --> - <!-- latin:moreKeys="“,â€,„,‟,«,»,‘,’,‚,‛" --> <Key latin:keyLabel=""" - latin:moreKeys="“,â€,«,»,‘,’,‚,‛" /> + latin:moreKeys="@string/more_keys_for_tablet_double_quote" + latin:maxMoreKeysColumn="4" /> <Key latin:keyLabel="_" /> <switch> diff --git a/java/res/xml-sw768dp/rows_symbols_shift.xml b/java/res/xml-sw768dp/rows_symbols_shift.xml index 80735b697ee20fef8367beef2ea96fa33be1a5d6..aba9c236d09ba45fc17c973021ea27338c2bdfc6 100644 --- a/java/res/xml-sw768dp/rows_symbols_shift.xml +++ b/java/res/xml-sw768dp/rows_symbols_shift.xml @@ -84,10 +84,8 @@ <Key latin:keyLabel="±" latin:moreKeys="∞" /> - <Key - latin:keyLabel="{" /> - <Key - latin:keyLabel="}" /> + <include + latin:keyboardLayout="@xml/keys_curly_brackets" /> <Key latin:keyStyle="returnKeyStyle" latin:keyXPos="-15.704%p" @@ -109,10 +107,8 @@ latin:keyLabel="â„¢" /> <Key latin:keyLabel="â„…" /> - <Key - latin:keyLabel="[" /> - <Key - latin:keyLabel="]" /> + <include + latin:keyboardLayout="@xml/keys_square_brackets" /> <Key latin:keyLabel="¡" /> <Key diff --git a/java/res/xml/kbd_arabic.xml b/java/res/xml/kbd_arabic.xml index d7f77cc3a0ae20157ae789d16e0256ba97f5a908..ce5f30b2fff9c0008e820250121830127d32911b 100644 --- a/java/res/xml/kbd_arabic.xml +++ b/java/res/xml/kbd_arabic.xml @@ -20,7 +20,6 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > <include latin:keyboardLayout="@xml/rows_arabic" /> diff --git a/java/res/xml/kbd_hebrew.xml b/java/res/xml/kbd_hebrew.xml index 3d574db598f0fd0d3424bbe60339ec25f0eac1f9..74836f342c018a4f698737a4c4772376ed24d11e 100644 --- a/java/res/xml/kbd_hebrew.xml +++ b/java/res/xml/kbd_hebrew.xml @@ -20,7 +20,6 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > <include latin:keyboardLayout="@xml/rows_hebrew" /> diff --git a/java/res/xml-ar/kbd_symbols.xml b/java/res/xml/keys_curly_brackets.xml similarity index 70% rename from java/res/xml-ar/kbd_symbols.xml rename to java/res/xml/keys_curly_brackets.xml index c1905b87566ecf30d859839d377628cddb0c9159..b43fbb1fe3f9962f45d483bd63543111d869684e 100644 --- a/java/res/xml-ar/kbd_symbols.xml +++ b/java/res/xml/keys_curly_brackets.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,10 +18,13 @@ */ --> -<Keyboard +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > - <include - latin:keyboardLayout="@xml/rows_symbols" /> -</Keyboard> + <Key + latin:keyLabel="{" + latin:keyOutputText="@string/output_text_for_left_curly_bracket" /> + <Key + latin:keyLabel="}" + latin:keyOutputText="@string/output_text_for_right_curly_bracket" /> +</merge> diff --git a/java/res/xml-iw/kbd_symbols.xml b/java/res/xml/keys_less_greater.xml similarity index 63% rename from java/res/xml-iw/kbd_symbols.xml rename to java/res/xml/keys_less_greater.xml index c1905b87566ecf30d859839d377628cddb0c9159..8e90199feaff0332732f65fc2dc1bfb676be7683 100644 --- a/java/res/xml-iw/kbd_symbols.xml +++ b/java/res/xml/keys_less_greater.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,10 +18,15 @@ */ --> -<Keyboard +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > - <include - latin:keyboardLayout="@xml/rows_symbols" /> -</Keyboard> + <Key + latin:keyLabel="<" + latin:keyOutputText="@string/output_text_for_less_than" + latin:moreKeys="@string/more_keys_for_less_than" /> + <Key + latin:keyLabel=">" + latin:keyOutputText="@string/output_text_for_greater_than" + latin:moreKeys="@string/more_keys_for_greater_than" /> +</merge> diff --git a/java/res/xml-iw/kbd_symbols_shift.xml b/java/res/xml/keys_parentheses.xml similarity index 62% rename from java/res/xml-iw/kbd_symbols_shift.xml rename to java/res/xml/keys_parentheses.xml index 820b425ea469d3950a56a222cb133f012d0bfd24..bacb26d2f497f88f27e26cbb0740d0b9120766ee 100644 --- a/java/res/xml-iw/kbd_symbols_shift.xml +++ b/java/res/xml/keys_parentheses.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,10 +18,15 @@ */ --> -<Keyboard +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > - <include - latin:keyboardLayout="@xml/rows_symbols_shift" /> -</Keyboard> + <Key + latin:keyLabel="(" + latin:keyOutputText="@string/output_text_for_left_parenthesis" + latin:moreKeys="@string/more_keys_for_left_parenthesis" /> + <Key + latin:keyLabel=")" + latin:keyOutputText="@string/output_text_for_right_parenthesis" + latin:moreKeys="@string/more_keys_for_right_parenthesis" /> +</merge> diff --git a/java/res/xml-ar/kbd_symbols_shift.xml b/java/res/xml/keys_square_brackets.xml similarity index 70% rename from java/res/xml-ar/kbd_symbols_shift.xml rename to java/res/xml/keys_square_brackets.xml index 820b425ea469d3950a56a222cb133f012d0bfd24..3525f4d5a9d1da6bb71b49c9f89222c78fcec0ce 100644 --- a/java/res/xml-ar/kbd_symbols_shift.xml +++ b/java/res/xml/keys_square_brackets.xml @@ -2,7 +2,7 @@ <!-- /* ** -** Copyright 2011, The Android Open Source Project +** Copyright 2012, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. @@ -18,10 +18,13 @@ */ --> -<Keyboard +<merge xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" - latin:isRtlKeyboard="true" > - <include - latin:keyboardLayout="@xml/rows_symbols_shift" /> -</Keyboard> + <Key + latin:keyLabel="[" + latin:keyOutputText="@string/output_text_for_left_square_bracket" /> + <Key + latin:keyLabel="]" + latin:keyOutputText="@string/output_text_for_right_square_bracket" /> +</merge> diff --git a/java/res/xml/rows_azerty.xml b/java/res/xml/rows_azerty.xml index 142ebc0a699fcb334a2596fe2f8182b9cce80a45..533c683d6daf0db8084436fab6cd0041daa601df 100644 --- a/java/res/xml/rows_azerty.xml +++ b/java/res/xml/rows_azerty.xml @@ -130,9 +130,13 @@ <Key latin:keyLabel="n" latin:moreKeys="@string/more_keys_for_n" /> + <!-- TODO: Introduce a flag, such as strinctMoreKeysOrder, to control moreKeys display + order more precisely. --> + <!-- This key is close enough to right edge, so that the 4-more keys will be displayed in + order of "4,3,1,2". See @string/more_keys_for_single_quote --> <Key latin:keyLabel="\'" - latin:moreKeys="‘,’,‚,‛" /> + latin:moreKeys="\u2018,\u2019,\u201b,\u201a" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" diff --git a/java/res/xml/rows_symbols.xml b/java/res/xml/rows_symbols.xml index d0d0edbc85f86f41441ddede57a054ec224b90a9..81a9a46021abb74008606a8a1b576e96c1c1bcda 100644 --- a/java/res/xml/rows_symbols.xml +++ b/java/res/xml/rows_symbols.xml @@ -93,13 +93,8 @@ <Key latin:keyLabel="+" latin:moreKeys="@string/more_keys_for_plus" /> - <Key - latin:keyLabel="(" - latin:moreKeys="@string/more_keys_for_left_parenthesis" /> - <Key - latin:keyLabel=")" - latin:moreKeys="@string/more_keys_for_right_parenthesis" - latin:keyWidth="fillRight" /> + <include + latin:keyboardLayout="@xml/keys_parentheses" /> </Row> <Row latin:keyWidth="10%p" @@ -111,15 +106,13 @@ <Key latin:keyLabel="!" latin:moreKeys="¡" /> - <!-- Note: Neither DroidSans nor Roboto have a glyph for ‟ Double high-reversed-9 quotation mark U+201F. --> - <!-- latin:moreKeys="“,â€,„,‟,«,»" --> <Key latin:keyLabel=""" - latin:moreKeys="“,â€,«,»" - latin:maxMoreKeysColumn="6" /> + latin:moreKeys="@string/more_keys_for_double_quote" + latin:maxMoreKeysColumn="4" /> <Key latin:keyLabel="\'" - latin:moreKeys="‘,’,‚,‛" /> + latin:moreKeys="@string/more_keys_for_single_quote" /> <Key latin:keyLabel=":" /> <Key diff --git a/java/res/xml/rows_symbols_shift.xml b/java/res/xml/rows_symbols_shift.xml index 6d1838c7b5cdc800876e13ba1b0ddfa803bacc98..828bd0624cf6c8d260ac018da266b2646cae8bae 100644 --- a/java/res/xml/rows_symbols_shift.xml +++ b/java/res/xml/rows_symbols_shift.xml @@ -46,11 +46,8 @@ latin:keyLabel="÷" /> <Key latin:keyLabel="×" /> - <Key - latin:keyLabel="{" /> - <Key - latin:keyLabel="}" - latin:keyWidth="fillRight" /> + <include + latin:keyboardLayout="@xml/keys_curly_brackets" /> </Row> <Row latin:keyWidth="10%p" @@ -74,11 +71,8 @@ <Key latin:keyLabel="=" latin:moreKeys="≠,≈,∞" /> - <Key - latin:keyLabel="[" /> - <Key - latin:keyLabel="]" - latin:keyWidth="fillRight" /> + <include + latin:keyboardLayout="@xml/keys_square_brackets" /> </Row> <Row latin:keyWidth="10%p" @@ -98,12 +92,8 @@ latin:moreKeys="§" /> <Key latin:keyLabel="\\" /> - <Key - latin:keyLabel="<" - latin:moreKeys="≤,«,‹" /> - <Key - latin:keyLabel=">" - latin:moreKeys="≥,»,›" /> + <include + latin:keyboardLayout="@xml/keys_less_greater" /> <Key latin:keyStyle="deleteKeyStyle" latin:keyWidth="fillRight" diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 3cfecf5effb38e198f302eb960dd8d0e168e371d..5e58821d099bab9bc59019c981a1c7396749ed77 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -36,8 +36,6 @@ import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; /** * Class for describing the position and characteristics of a single key in the keyboard. @@ -129,45 +127,6 @@ public class Key { /** Key is enabled and responds on press */ private boolean mEnabled = true; - // RTL parenthesis character swapping map. - private static final Map<Integer, Integer> sRtlParenthesisMap = new HashMap<Integer, Integer>(); - - static { - // The all letters need to be mirrored are found at - // http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBinaryProperties.txt - addRtlParenthesisPair('(', ')'); - addRtlParenthesisPair('[', ']'); - addRtlParenthesisPair('{', '}'); - addRtlParenthesisPair('<', '>'); - // \u00ab: LEFT-POINTING DOUBLE ANGLE QUOTATION MARK - // \u00bb: RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK - addRtlParenthesisPair('\u00ab', '\u00bb'); - // \u2039: SINGLE LEFT-POINTING ANGLE QUOTATION MARK - // \u203a: SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - addRtlParenthesisPair('\u2039', '\u203a'); - // \u2264: LESS-THAN OR EQUAL TO - // \u2265: GREATER-THAN OR EQUAL TO - addRtlParenthesisPair('\u2264', '\u2265'); - } - - private static void addRtlParenthesisPair(int left, int right) { - sRtlParenthesisMap.put(left, right); - sRtlParenthesisMap.put(right, left); - } - - public static int getRtlParenthesisCode(int code, boolean isRtl) { - if (isRtl && sRtlParenthesisMap.containsKey(code)) { - return sRtlParenthesisMap.get(code); - } else { - return code; - } - } - - private static int getCode(Resources res, Keyboard.Params params, String moreKeySpec) { - return getRtlParenthesisCode( - MoreKeySpecParser.getCode(res, moreKeySpec), params.mIsRtlKeyboard); - } - private static Drawable getIcon(Keyboard.Params params, String moreKeySpec) { final int iconAttrId = MoreKeySpecParser.getIconAttrId(moreKeySpec); if (iconAttrId == KeyboardIconsSet.ICON_UNDEFINED) { @@ -183,7 +142,8 @@ public class Key { public Key(Resources res, Keyboard.Params params, String moreKeySpec, int x, int y, int width, int height) { this(params, MoreKeySpecParser.getLabel(moreKeySpec), null, getIcon(params, moreKeySpec), - getCode(res, params, moreKeySpec), MoreKeySpecParser.getOutputText(moreKeySpec), + MoreKeySpecParser.getCode(res, moreKeySpec), + MoreKeySpecParser.getOutputText(moreKeySpec), x, y, width, height); } @@ -311,16 +271,14 @@ public class Key { if (code == Keyboard.CODE_UNSPECIFIED && TextUtils.isEmpty(outputText) && !TextUtils.isEmpty(mLabel)) { if (mLabel.codePointCount(0, mLabel.length()) == 1) { - final int activatedCode; // Use the first letter of the hint label if shiftedLetterActivated flag is // specified. if (hasShiftedLetterHint() && isShiftedLetterActivated() && !TextUtils.isEmpty(mHintLabel)) { - activatedCode = mHintLabel.codePointAt(0); + mCode = mHintLabel.codePointAt(0); } else { - activatedCode = mLabel.codePointAt(0); + mCode = mLabel.codePointAt(0); } - mCode = getRtlParenthesisCode(activatedCode, params.mIsRtlKeyboard); } else { // In some locale and case, the character might be represented by multiple code // points, such as upper case Eszett of German alphabet. diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 1e1f439d4d84de54ff14c819f4a8a4f4c6272459..6653dec4b4c7580c6a829bcf7e1d6da57ff3b1b5 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -121,9 +121,6 @@ public class Keyboard { /** Maximum column for mini keyboard */ public final int mMaxMiniKeyboardColumn; - /** True if Right-To-Left keyboard */ - public final boolean mIsRtlKeyboard; - /** List of keys and icons in this keyboard */ public final Set<Key> mKeys; public final Set<Key> mShiftKeys; @@ -140,7 +137,6 @@ public class Keyboard { mOccupiedWidth = params.mOccupiedWidth; mMostCommonKeyHeight = params.mMostCommonKeyHeight; mMostCommonKeyWidth = params.mMostCommonKeyWidth; - mIsRtlKeyboard = params.mIsRtlKeyboard; mMoreKeysTemplate = params.mMoreKeysTemplate; mMaxMiniKeyboardColumn = params.mMaxMiniKeyboardColumn; @@ -222,7 +218,6 @@ public class Keyboard { public int mHorizontalGap; public int mVerticalGap; - public boolean mIsRtlKeyboard; public int mMoreKeysTemplate; public int mMaxMiniKeyboardColumn; @@ -739,8 +734,6 @@ public class Keyboard { R.styleable.Keyboard_rowHeight, params.mBaseHeight, params.mBaseHeight / DEFAULT_KEYBOARD_ROWS); - params.mIsRtlKeyboard = keyboardAttr.getBoolean( - R.styleable.Keyboard_isRtlKeyboard, false); params.mMoreKeysTemplate = keyboardAttr.getResourceId( R.styleable.Keyboard_moreKeysTemplate, 0); params.mMaxMiniKeyboardColumn = keyAttr.getInt( diff --git a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java index 974291373dad0376e193f85de750caec079bcf39..433bd0d753a4793cba98c916204d9b7fabd9345b 100644 --- a/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/MiniKeyboard.java @@ -210,7 +210,6 @@ public class MiniKeyboard extends Keyboard { // TODO: Mini keyboard's vertical gap is currently calculated heuristically. // Should revise the algorithm. mParams.mVerticalGap = parentKeyboard.mVerticalGap / 2; - mParams.mIsRtlKeyboard = parentKeyboard.mIsRtlKeyboard; mMoreKeys = parentKey.mMoreKeys; final int previewWidth = view.mKeyPreviewDrawParams.mPreviewBackgroundWidth;