aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-02-01 19:43:58 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-02-01 22:58:16 +0900
commit71c695da22fd99e56ba5b267ad21b750ab1534b5 (patch)
treec5e66729dca93601a040fdd41003e036b34f32ec
parent40e9012276b1df9be8c1a9069eaeb16027549a85 (diff)
downloadlatinime-71c695da22fd99e56ba5b267ad21b750ab1534b5.tar.gz
latinime-71c695da22fd99e56ba5b267ad21b750ab1534b5.tar.xz
latinime-71c695da22fd99e56ba5b267ad21b750ab1534b5.zip
Remove BIDI mirroring hack from Key
This change also removes isRtlKeyboard attribute from <Keyboard/> Bug: 5948247 Change-Id: I85998f17ae146a4c8cd0f419ab820b746cb8974f
-rw-r--r--java/res/values-ar/donottranslate-more-keys.xml43
-rw-r--r--java/res/values-ar/donottranslate.xml2
-rw-r--r--java/res/values-iw/donottranslate-more-keys.xml37
-rw-r--r--java/res/values-iw/donottranslate.xml2
-rw-r--r--java/res/values/attrs.xml2
-rw-r--r--java/res/values/donottranslate-more-keys.xml37
-rw-r--r--java/res/xml-sw600dp/rows_azerty.xml5
-rw-r--r--java/res/xml-sw600dp/rows_symbols.xml24
-rw-r--r--java/res/xml-sw600dp/rows_symbols_shift.xml12
-rw-r--r--java/res/xml-sw768dp/rows_azerty.xml4
-rw-r--r--java/res/xml-sw768dp/rows_symbols.xml24
-rw-r--r--java/res/xml-sw768dp/rows_symbols_shift.xml12
-rw-r--r--java/res/xml/kbd_arabic.xml1
-rw-r--r--java/res/xml/kbd_hebrew.xml1
-rw-r--r--java/res/xml/keys_curly_brackets.xml (renamed from java/res/xml-ar/kbd_symbols.xml)15
-rw-r--r--java/res/xml/keys_less_greater.xml (renamed from java/res/xml-iw/kbd_symbols.xml)17
-rw-r--r--java/res/xml/keys_parentheses.xml (renamed from java/res/xml-iw/kbd_symbols_shift.xml)17
-rw-r--r--java/res/xml/keys_square_brackets.xml (renamed from java/res/xml-ar/kbd_symbols_shift.xml)15
-rw-r--r--java/res/xml/rows_azerty.xml6
-rw-r--r--java/res/xml/rows_symbols.xml17
-rw-r--r--java/res/xml/rows_symbols_shift.xml22
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java50
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java7
-rw-r--r--java/src/com/android/inputmethod/keyboard/MiniKeyboard.java1
24 files changed, 203 insertions, 170 deletions
diff --git a/java/res/values-ar/donottranslate-more-keys.xml b/java/res/values-ar/donottranslate-more-keys.xml
index 6a14a3c55..9a7a0267a 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">[,{,&lt;,\ufd3e</string>
- <!-- \ufd3f: ORNATE RIGHT PARENTHESIS -->
- <string name="more_keys_for_right_parenthesis">],},&gt;,\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">[|],{|},&lt;|&gt;,\ufd3e|\ufd3f</string>
+ <string name="more_keys_for_right_parenthesis">]|[,}|{,&gt;|&lt;,\ufd3f|\ufd3e</string>
+ <string name="output_text_for_less_than">&gt;</string>
+ <string name="output_text_for_greater_than">&lt;</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 c51ac502a..a9aad4e3c 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 829486f7b..6fc336002 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">[|],{|},&lt;|&gt;</string>
+ <string name="more_keys_for_right_parenthesis">]|[,}|{,&gt;|&lt;</string>
+ <string name="output_text_for_less_than">&gt;</string>
+ <string name="output_text_for_greater_than">&lt;</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 c51ac502a..a9aad4e3c 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 d859ae3ea..dd2206da8 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 07f4bf38b..07e711a02 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">[,{,&lt;</string>
<string name="more_keys_for_right_parenthesis">],},&gt;</string>
+ <string name="output_text_for_less_than">&lt;</string>
+ <string name="output_text_for_greater_than">&gt;</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 c29d291ea..aabe6b0e8 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 701c35470..c2dfe2f82 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="[,{,&lt;" />
- <Key
- latin:keyLabel=")"
- latin:moreKeys="],},&gt;" />
+ <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="&lt;"
- latin:moreKeys="≤,«,‹" />
- <Key
- latin:keyLabel="&gt;"
- 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="&quot;"
- 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 d3531dd39..6a640c06b 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 886ebecaa..b9ef89822 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 7458b366a..2ba935724 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="[,{,&lt;" />
- <Key
- latin:keyLabel=")"
- latin:moreKeys="],},&gt;" />
+ <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="&lt;"
- latin:moreKeys="≤,«,‹" />
- <Key
- latin:keyLabel="&gt;"
- 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="&quot;"
- 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 80735b697..aba9c236d 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 d7f77cc3a..ce5f30b2f 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 3d574db59..74836f342 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
index c1905b875..b43fbb1fe 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
index c1905b875..8e90199fe 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="&lt;"
+ latin:keyOutputText="@string/output_text_for_less_than"
+ latin:moreKeys="@string/more_keys_for_less_than" />
+ <Key
+ latin:keyLabel="&gt;"
+ 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
index 820b425ea..bacb26d2f 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
index 820b425ea..3525f4d5a 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 142ebc0a6..533c683d6 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 d0d0edbc8..81a9a4602 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="&quot;"
- 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 6d1838c7b..828bd0624 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="&lt;"
- latin:moreKeys="≤,«,‹" />
- <Key
- latin:keyLabel="&gt;"
- 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 3cfecf5ef..5e58821d0 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 1e1f439d4..6653dec4b 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 974291373..433bd0d75 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;