[automerger skipped] Merge SPL-2020-03-05 Change-Id: I6eabb1bb0e3bd4e507501baa13abf60d7ce8f8e2 skipped: 91068d1ced
Change-Id: I71cf63c64b339b5b0f8a95f866bf8092c2363a91
diff --git a/java/res/xml/rowkeys_greek1.xml b/java/res/xml/rowkeys_greek1.xml
index 6d76779..45895a5 100644
--- a/java/res/xml/rowkeys_greek1.xml
+++ b/java/res/xml/rowkeys_greek1.xml
@@ -28,14 +28,14 @@
<Key
latin:keySpec=":"
latin:keyHintLabel="1"
- latin:moreKeys=";"
+ latin:moreKeys=";,·"
latin:additionalMoreKeys="1" />
</case>
<default>
<Key
latin:keySpec=";"
latin:keyHintLabel="1"
- latin:moreKeys=":"
+ latin:moreKeys=":,·"
latin:additionalMoreKeys="1" />
</default>
</switch>
@@ -64,17 +64,26 @@
</switch>
-->
<!-- U+03B5: "ε" GREEK SMALL LETTER EPSILON
- U+03AD: "έ" GREEK SMALL LETTER EPSILON WITH TONOS -->
+ U+03AD: "έ" GREEK SMALL LETTER EPSILON WITH TONOS
+ U+1F72: "ὲ" GREEK SMALL LETTER EPSILON WITH VARIA
+ U+1F10: "ἐ" GREEK SMALL LETTER EPSILON WITH PSILI
+ U+1F11: "ἑ" GREEK SMALL LETTER EPSILON WITH DASIA
+ U+1F14: "ἔ" GREEK SMALL LETTER EPSILON WITH PSILI AND OXIA
+ U+1F15: "ἕ" GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
+ U+1F12: "ἒ" GREEK SMALL LETTER EPSILON WITH PSILI AND VARIA
+ U+1F13: "ἓ" GREEK SMALL LETTER EPSILON WITH DASIA AND VARIA -->
<Key
latin:keySpec="ε"
latin:keyHintLabel="3"
latin:additionalMoreKeys="3"
- latin:moreKeys="έ,%" />
- <!-- U+03C1: "ρ" GREEK SMALL LETTER RHO -->
+ latin:moreKeys="έ,%,ὲ,ἐ,ἑ,ἔ,ἕ,ἒ,ἓ" />
+ <!-- U+03C1: "ρ" GREEK SMALL LETTER RHO
+ U+1FE5: "ῥ" GREEK SMALL LETTER RHO WITH DASIA -->
<Key
latin:keySpec="ρ"
latin:keyHintLabel="4"
- latin:additionalMoreKeys="4" />
+ latin:additionalMoreKeys="4"
+ latin:moreKeys="%,ῥ" />
<!-- U+03C4: "τ" GREEK SMALL LETTER TAU -->
<Key
latin:keySpec="τ"
@@ -83,12 +92,24 @@
<!-- U+03C5: "υ" GREEK SMALL LETTER UPSILON
U+03CD: "ύ" GREEK SMALL LETTER UPSILON WITH TONOS
U+03CB: "ϋ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA
- U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+ U+03B0: "ΰ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+ U+1F7A: "ὺ" GREEK SMALL LETTER UPSILON WITH VARIA
+ U+1FE6: "ῦ" GREEK SMALL LETTER UPSILON WITH PERISPOMENI
+ U+1F50: "ὐ" GREEK SMALL LETTER UPSILON WITH PSILI
+ U+1F51: "ὑ" GREEK SMALL LETTER UPSILON WITH DASIA
+ U+1F54: "ὔ" GREEK SMALL LETTER UPSILON WITH PSILI AND OXIA
+ U+1F55: "ὕ" GREEK SMALL LETTER UPSILON WITH DASIA AND OXIA
+ U+1F52: "ὒ" GREEK SMALL LETTER UPSILON WITH PSILI AND VARIA
+ U+1F53: "ὓ" GREEK SMALL LETTER UPSILON WITH DASIA AND VARIA
+ U+1F56: "ὖ" GREEK SMALL LETTER UPSILON WITH PSILI AND PERISPOMENI
+ U+1F57: "ὗ" GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
+ U+1FE2: "ῢ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND VARIA
+ U+1FE7: "ῧ" GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND PERISPOMENI -->
<Key
latin:keySpec="υ"
latin:keyHintLabel="6"
latin:additionalMoreKeys="6"
- latin:moreKeys="ύ,%,ϋ,ΰ" />
+ latin:moreKeys="ύ,%,ϋ,ΰ,ὺ,ῦ,ὐ,ὑ,ὔ,ὕ,ὒ,ὓ,ὖ,ὗ,ῢ,ῧ" />
<!-- U+03B8: "θ" GREEK SMALL LETTER THETA -->
<Key
latin:keySpec="θ"
@@ -97,19 +118,38 @@
<!-- U+03B9: "ι" GREEK SMALL LETTER IOTA
U+03AF: "ί" GREEK SMALL LETTER IOTA WITH TONOS
U+03CA: "ϊ" GREEK SMALL LETTER IOTA WITH DIALYTIKA
- U+0390: "ΐ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+ U+0390: "ΐ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+ U+1F76: "ὶ" GREEK SMALL LETTER IOTA WITH VARIA
+ U+1FD6: "ῖ" GREEK SMALL LETTER IOTA WITH PERISPOMENI
+ U+1F30: "ἰ" GREEK SMALL LETTER IOTA WITH PSILI
+ U+1F31: "ἱ" GREEK SMALL LETTER IOTA WITH DASIA
+ U+1F34: "ἴ" GREEK SMALL LETTER IOTA WITH PSILI AND OXIA
+ U+1F35: "ἵ" GREEK SMALL LETTER IOTA WITH DASIA AND OXIA
+ U+1F32: "ἲ" GREEK SMALL LETTER IOTA WITH PSILI AND VARIA
+ U+1F33: "ἳ" GREEK SMALL LETTER IOTA WITH DASIA AND VARIA
+ U+1F36: "ἶ" GREEK SMALL LETTER IOTA WITH PSILI AND PERISPOMENI
+ U+1F37: "ἷ" GREEK SMALL LETTER IOTA WITH DASIA AND PERISPOMENI
+ U+1FD2: "ῒ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND VARIA
+ U+1FD7: "ῗ" GREEK SMALL LETTER IOTA WITH DIALYTIKA AND PERISPOMENI -->
<Key
latin:keySpec="ι"
latin:keyHintLabel="8"
latin:additionalMoreKeys="8"
- latin:moreKeys="ί,%,ϊ,ΐ" />
+ latin:moreKeys="ί,%,ϊ,ΐ,ὶ,ῖ,ἰ,ἱ,ἴ,ἵ,ἲ,ἳ,ἶ,ἷ,ῒ,ῗ" />
<!-- U+03BF: "ο" GREEK SMALL LETTER OMICRON
- U+03CC: "ό" GREEK SMALL LETTER OMICRON WITH TONOS -->
+ U+03CC: "ό" GREEK SMALL LETTER OMICRON WITH TONOS
+ U+1F78: "ὸ" GREEK SMALL LETTER OMICRON WITH VARIA
+ U+1F40: "ὀ" GREEK SMALL LETTER OMICRON WITH PSILI
+ U+1F41: "ὁ" GREEK SMALL LETTER OMICRON WITH DASIA
+ U+1F44: "ὄ" GREEK SMALL LETTER OMICRON WITH PSILI AND OXIA
+ U+1F45: "ὅ" GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
+ U+1F42: "ὂ" GREEK SMALL LETTER OMICRON WITH PSILI AND VARIA
+ U+1F43: "ὃ" GREEK SMALL LETTER OMICRON WITH DASIA AND VARIA -->
<Key
latin:keySpec="ο"
latin:keyHintLabel="9"
latin:additionalMoreKeys="9"
- latin:moreKeys="ό,%" />
+ latin:moreKeys="ό,%,ὸ,ὀ,ὁ,ὄ,ὅ,ὂ,ὃ" />
<!-- U+03C0: "π" GREEK SMALL LETTER PI -->
<Key
latin:keySpec="π"
diff --git a/java/res/xml/rowkeys_greek2.xml b/java/res/xml/rowkeys_greek2.xml
index d8769ca..97dde5b 100644
--- a/java/res/xml/rowkeys_greek2.xml
+++ b/java/res/xml/rowkeys_greek2.xml
@@ -21,11 +21,55 @@
<merge
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
>
- <!-- U+03B1: "α" GREEK SMALL LETTER ALPHA
- U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS -->
- <Key
- latin:keySpec="α"
- latin:moreKeys="ά" />
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
+ >
+ <!-- U+0391: "Α" GREEK CAPITAL LETTER ALPHA
+ U+0386: "Ά" GREEK CAPITAL LETTER ALPHA WITH TONOS
+ U+1FBA: "Ὰ" GREEK CAPITAL LETTER ALPHA WITH VARIA
+ U+1F08: "Ἀ" GREEK CAPITAL LETTER ALPHA WITH PSILI
+ U+1F09: "Ἁ" GREEK CAPITAL LETTER ALPHA WITH DASIA
+ U+1F04: "Ἄ" GREEK CAPITAL LETTER ALPHA WITH PSILI AND OXIA
+ U+1F05: "Ἅ" GREEK CAPITAL LETTER ALPHA WITH DASIA AND OXIA
+ U+1F0A: "Ἂ" GREEK CAPITAL LETTER ALPHA WITH PSILI AND VARIA
+ U+1F0B: "Ἃ" GREEK CAPITAL LETTER ALPHA WITH DASIA AND VARIA
+ U+1F0E: "Ἆ" GREEK CAPITAL LETTER ALPHA WITH PSILI AND PERISPOMENI
+ U+1F0F: "Ἇ" GREEK CAPITAL LETTER ALPHA WITH DASIA AND PERISPOMENI -->
+ <Key
+ latin:keySpec="Α"
+ latin:moreKeys="Ά,Ὰ,Ἀ,Ἁ,ἄ,ἅ,Ἂ,Ἃ,Ἆ,Ἇ" />
+ </case>
+ <default>
+ <!-- U+03B1: "α" GREEK SMALL LETTER ALPHA
+ U+03AC: "ά" GREEK SMALL LETTER ALPHA WITH TONOS
+ U+1F70: "ὰ" GREEK SMALL LETTER ALPHA WITH VARIA
+ U+1FB6: "ᾶ" GREEK SMALL LETTER ALPHA WITH PERISPOMENI
+ U+1F00: "ἀ" GREEK SMALL LETTER ALPHA WITH PSILI
+ U+1F01: "ἁ" GREEK SMALL LETTER ALPHA WITH DASIA
+ U+1F04: "ἄ" GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA
+ U+1F05: "ἅ" GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA
+ U+1F02: "ἂ" GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA
+ U+1F03: "ἃ" GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA
+ U+1F06: "ἆ" GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI
+ U+1F07: "ἇ" GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI
+ U+1FB3: "ᾳ" GREEK SMALL LETTER ALPHA WITH YPOGEGRAMMENI
+ U+1FB4: "ᾴ" GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
+ U+1FB2: "ᾲ" GREEK SMALL LETTER ALPHA WITH VARIA AND YPOGEGRAMMENI
+ U+1FB7: "ᾷ" GREEK SMALL LETTER ALPHA WITH PERISPOMENI AND YPOGEGRAMMENI
+ U+1F80: "ᾀ" GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
+ U+1F81: "ᾁ" GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
+ U+1F84: "ᾄ" GREEK SMALL LETTER ALPHA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+ U+1F85: "ᾅ" GREEK SMALL LETTER ALPHA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+ U+1F82: "ᾂ" GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+ U+1F83: "ᾃ" GREEK SMALL LETTER ALPHA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+ U+1F86: "ᾆ" GREEK SMALL LETTER ALPHA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+ U+1F87: "ᾇ" GREEK SMALL LETTER ALPHA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
+ <Key
+ latin:keySpec="α"
+ latin:moreKeys="ά,ὰ,ᾶ,ἀ,ἁ,ἄ,ἅ,ἂ,ἃ,ἆ,ἇ,ᾳ,ᾴ,ᾲ,ᾷ,ᾀ,ᾁ,ᾄ,ᾅ,ᾂ,ᾃ,ᾆ,ᾇ" />
+ </default>
+ </switch>
<!-- U+03C3: "σ" GREEK SMALL LETTER SIGMA -->
<Key
latin:keySpec="σ" />
@@ -38,11 +82,55 @@
<!-- U+03B3: "γ" GREEK SMALL LETTER GAMMA -->
<Key
latin:keySpec="γ" />
- <!-- U+03B7: "η" GREEK SMALL LETTER ETA
- U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS -->
- <Key
- latin:keySpec="η"
- latin:moreKeys="ή" />
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
+ >
+ <!-- U+0397: "Η" GREEK CAPITAL LETTER ETA
+ U+0389: "Ή" GREEK CAPITAL LETTER ETA WITH TONOS
+ U+1FCA: "Ὴ" GREEK CAPITAL LETTER ETA WITH VARIA
+ U+1F28: "Ἠ" GREEK CAPITAL LETTER ETA WITH PSILI
+ U+1F29: "Ἡ" GREEK CAPITAL LETTER ETA WITH DASIA
+ U+1F2C: "Ἤ" GREEK CAPITAL LETTER ETA WITH PSILI AND OXIA
+ U+1F2D: "Ἥ" GREEK CAPITAL LETTER ETA WITH DASIA AND OXIA
+ U+1F2A: "Ἢ" GREEK CAPITAL LETTER ETA WITH PSILI AND VARIA
+ U+1F2B: "Ἣ" GREEK CAPITAL LETTER ETA WITH DASIA AND VARIA
+ U+1F2E: "Ἦ" GREEK CAPITAL LETTER ETA WITH PSILI AND PERISPOMENI
+ U+1F2F: "Ἧ" GREEK CAPITAL LETTER ETA WITH DASIA AND PERISPOMENI -->
+ <Key
+ latin:keySpec="Η"
+ latin:moreKeys="Ή,Ὴ,Ἠ,Ἡ,Ἤ,Ἥ,Ἢ,Ἣ,Ἦ,Ἧ" />
+ </case>
+ <default>
+ <!-- U+03B7: "η" GREEK SMALL LETTER ETA
+ U+03AE: "ή" GREEK SMALL LETTER ETA WITH TONOS
+ U+1F74: "ὴ" GREEK SMALL LETTER ETA WITH VARIA
+ U+1FC6: "ῆ" GREEK SMALL LETTER ETA WITH PERISPOMENI
+ U+1F20: "ἠ" GREEK SMALL LETTER ETA WITH PSILI
+ U+1F21: "ἡ" GREEK SMALL LETTER ETA WITH DASIA
+ U+1F24: "ἤ" GREEK SMALL LETTER ETA WITH PSILI AND OXIA
+ U+1F25: "ἥ" GREEK SMALL LETTER ETA WITH DASIA AND OXIA
+ U+1F22: "ἢ" GREEK SMALL LETTER ETA WITH PSILI AND VARIA
+ U+1F23: "ἣ" GREEK SMALL LETTER ETA WITH DASIA AND VARIA
+ U+1F26: "ἦ" GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI
+ U+1F27: "ἧ" GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI
+ U+1FC3: "ῃ" GREEK SMALL LETTER ETA WITH YPOGEGRAMMENI
+ U+1FC4: "ῄ" GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
+ U+1FC2: "ῂ" GREEK SMALL LETTER ETA WITH VARIA AND YPOGEGRAMMENI
+ U+1FC7: "ῇ" GREEK SMALL LETTER ETA WITH PERISPOMENI AND YPOGEGRAMMENI
+ U+1F90: "ᾐ" GREEK SMALL LETTER ETA WITH PSILI AND YPOGEGRAMMENI
+ U+1F91: "ᾑ" GREEK SMALL LETTER ETA WITH DASIA AND YPOGEGRAMMENI
+ U+1F94: "ᾔ" GREEK SMALL LETTER ETA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+ U+1F95: "ᾕ" GREEK SMALL LETTER ETA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+ U+1F92: "ᾒ" GREEK SMALL LETTER ETA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+ U+1F93: "ᾓ" GREEK SMALL LETTER ETA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+ U+1F96: "ᾖ" GREEK SMALL LETTER ETA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+ U+1F97: "ᾗ" GREEK SMALL LETTER ETA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
+ <Key
+ latin:keySpec="η"
+ latin:moreKeys="ή,ὴ,ῆ,ἠ,ἡ,ἤ,ἥ,ἢ,ἣ,ἦ,ἧ,ῃ,ῄ,ῂ,ῇ,ᾐ,ᾑ,ᾔ,ᾕ,ᾒ,ᾓ,ᾖ,ᾗ" />
+ </default>
+ </switch>
<!-- U+03BE: "ξ" GREEK SMALL LETTER XI -->
<Key
latin:keySpec="ξ" />
diff --git a/java/res/xml/rowkeys_greek3.xml b/java/res/xml/rowkeys_greek3.xml
index 3f989bc..0c2667b 100644
--- a/java/res/xml/rowkeys_greek3.xml
+++ b/java/res/xml/rowkeys_greek3.xml
@@ -30,11 +30,55 @@
<!-- U+03C8: "ψ" GREEK SMALL LETTER PSI -->
<Key
latin:keySpec="ψ" />
- <!-- U+03C9: "ω" GREEK SMALL LETTER OMEGA
- U+03CE: "ώ" GREEK SMALL LETTER OMEGA WITH TONOS -->
- <Key
- latin:keySpec="ω"
- latin:moreKeys="ώ" />
+ <switch>
+ <case
+ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
+ >
+ <!-- U+03A9: "Ω" GREEK CAPITAL LETTER OMEGA
+ U+038F: "Ώ" GREEK CAPITAL LETTER OMEGA WITH TONOS
+ U+1FFA: "Ὼ" GREEK CAPITAL LETTER OMEGA WITH VARIA
+ U+1F68: "Ὠ" GREEK CAPITAL LETTER OMEGA WITH PSILI
+ U+1F69: "Ὡ" GREEK CAPITAL LETTER OMEGA WITH DASIA
+ U+1F6C: "Ὤ" GREEK CAPITAL LETTER OMEGA WITH PSILI AND OXIA
+ U+1F6D: "Ὥ" GREEK CAPITAL LETTER OMEGA WITH DASIA AND OXIA
+ U+1F6A: "Ὢ" GREEK CAPITAL LETTER OMEGA WITH PSILI AND VARIA
+ U+1F6B: "Ὣ" GREEK CAPITAL LETTER OMEGA WITH DASIA AND VARIA
+ U+1F6E: "Ὦ" GREEK CAPITAL LETTER OMEGA WITH PSILI AND PERISPOMENI
+ U+1F6F: "Ὧ" GREEK CAPITAL LETTER OMEGA WITH DASIA AND PERISPOMENI -->
+ <Key
+ latin:keySpec="ω"
+ latin:moreKeys="Ώ,Ὼ,Ὠ,Ὡ,Ὤ,Ὥ,Ὢ,Ὣ,Ὦ,Ὧ" />
+ </case>
+ <default>
+ <!-- U+03C9: "ω" GREEK SMALL LETTER OMEGA
+ U+03CE: "ώ" GREEK SMALL LETTER OMEGA WITH TONOS
+ U+1F7C: "ὼ" GREEK SMALL LETTER OMEGA WITH VARIA
+ U+1FF6: "ῶ" GREEK SMALL LETTER OMEGA WITH PERISPOMENI
+ U+1F60: "ὠ" GREEK SMALL LETTER OMEGA WITH PSILI
+ U+1F61: "ὡ" GREEK SMALL LETTER OMEGA WITH DASIA
+ U+1F64: "ὤ" GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA
+ U+1F65: "ὥ" GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA
+ U+1F62: "ὢ" GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA
+ U+1F63: "ὣ" GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA
+ U+1F66: "ὦ" GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI
+ U+1F67: "ὧ" GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI
+ U+1FF3: "ῳ" GREEK SMALL LETTER OMEGA WITH YPOGEGRAMMENI
+ U+1FF4: "ῴ" GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
+ U+1FF2: "ῲ" GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
+ U+1FF7: "ῷ" GREEK SMALL LETTER OMEGA WITH PERISPOMENI AND YPOGEGRAMMENI
+ U+1FA0: "ᾠ" GREEK SMALL LETTER OMEGA WITH PSILI AND YPOGEGRAMMENI
+ U+1FA1: "ᾡ" GREEK SMALL LETTER OMEGA WITH DASIA AND YPOGEGRAMMENI
+ U+1FA4: "ᾤ" GREEK SMALL LETTER OMEGA WITH PSILI AND OXIA AND YPOGEGRAMMENI
+ U+1FA5: "ᾥ" GREEK SMALL LETTER OMEGA WITH DASIA AND OXIA AND YPOGEGRAMMENI
+ U+1FA2: "ᾢ" GREEK SMALL LETTER OMEGA WITH PSILI AND VARIA AND YPOGEGRAMMENI
+ U+1FA3: "ᾣ" GREEK SMALL LETTER OMEGA WITH DASIA AND VARIA AND YPOGEGRAMMENI
+ U+1FA6: "ᾦ" GREEK SMALL LETTER OMEGA WITH PSILI AND PERISPOMENI AND YPOGEGRAMMENI
+ U+1FA7: "ᾧ" GREEK SMALL LETTER OMEGA WITH DASIA AND PERISPOMENI AND YPOGEGRAMMENI -->
+ <Key
+ latin:keySpec="ω"
+ latin:moreKeys="ώ,ὼ,ῶ,ὠ,ὡ,ὤ,ὥ,ὢ,ὣ,ὦ,ὧ,ῳ,ῴ,ῲ,ῷ,ᾠ,ᾡ,ᾤ,ᾥ,ᾢ,ᾣ,ᾦ,ᾧ" />
+ </default>
+ </switch>
<!-- U+03B2: "β" GREEK SMALL LETTER BETA -->
<Key
latin:keySpec="β" />
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
index f7a1163..5c03d26 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityDelegate.java
@@ -243,7 +243,6 @@
// Make sure we're not getting an EXIT event because the user slid
// off the keyboard area, then force a key press.
if (key != null) {
- performClickOn(key);
onHoverExitFrom(key);
}
setLastHoverKey(null);
diff --git a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
index a3511c6..7266aa8 100644
--- a/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
+++ b/java/src/com/android/inputmethod/accessibility/KeyboardAccessibilityNodeProvider.java
@@ -236,6 +236,7 @@
// Obtain and initialize an AccessibilityNodeInfo with information about the virtual view.
final AccessibilityNodeInfoCompat info = AccessibilityNodeInfoCompat.obtain();
info.setPackageName(mKeyboardView.getContext().getPackageName());
+ info.setTextEntryKey(true);
info.setClassName(key.getClass().getName());
info.setContentDescription(keyDescription);
info.setBoundsInParent(boundsInParent);
@@ -244,13 +245,9 @@
info.setSource(mKeyboardView, virtualViewId);
info.setEnabled(key.isEnabled());
info.setVisibleToUser(true);
- // Don't add ACTION_CLICK and ACTION_LONG_CLOCK actions while hovering on the key.
- // See {@link #onHoverEnterTo(Key)} and {@link #onHoverExitFrom(Key)}.
- if (virtualViewId != mHoveringNodeId) {
- info.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
- if (key.isLongPressEnabled()) {
- info.addAction(AccessibilityNodeInfoCompat.ACTION_LONG_CLICK);
- }
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_CLICK);
+ if (key.isLongPressEnabled()) {
+ info.addAction(AccessibilityNodeInfoCompat.ACTION_LONG_CLICK);
}
if (mAccessibilityFocusedView == virtualViewId) {
diff --git a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
index edda32d..3234993 100644
--- a/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
+++ b/java/src/com/android/inputmethod/accessibility/MainKeyboardAccessibilityDelegate.java
@@ -62,13 +62,10 @@
// The rectangle region to ignore hover events.
private final Rect mBoundsToIgnoreHoverEvent = new Rect();
- private final AccessibilityLongPressTimer mAccessibilityLongPressTimer;
public MainKeyboardAccessibilityDelegate(final MainKeyboardView mainKeyboardView,
final KeyDetector keyDetector) {
super(mainKeyboardView, keyDetector);
- mAccessibilityLongPressTimer = new AccessibilityLongPressTimer(
- this /* callback */, mainKeyboardView.getContext());
}
/**
@@ -233,7 +230,6 @@
Log.d(TAG, "onHoverEnterTo: key=" + key
+ " inIgnoreBounds=" + mBoundsToIgnoreHoverEvent.contains(x, y));
}
- mAccessibilityLongPressTimer.cancelLongPress();
if (mBoundsToIgnoreHoverEvent.contains(x, y)) {
return;
}
@@ -241,9 +237,6 @@
// Further hover events should be handled.
mBoundsToIgnoreHoverEvent.setEmpty();
super.onHoverEnterTo(key);
- if (key.isLongPressEnabled()) {
- mAccessibilityLongPressTimer.startLongPress(key);
- }
}
@Override
@@ -254,7 +247,6 @@
Log.d(TAG, "onHoverExitFrom: key=" + key
+ " inIgnoreBounds=" + mBoundsToIgnoreHoverEvent.contains(x, y));
}
- mAccessibilityLongPressTimer.cancelLongPress();
super.onHoverExitFrom(key);
}
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 4d337b6..91295c7 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -24,6 +24,8 @@
import android.view.View;
import android.view.inputmethod.EditorInfo;
+import androidx.annotation.NonNull;
+
import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
import com.android.inputmethod.event.Event;
import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
@@ -88,17 +90,19 @@
InputMethodServiceCompatUtils.enableHardwareAcceleration(mLatinIME);
}
- public void updateKeyboardTheme() {
+ public void updateKeyboardTheme(@NonNull Context displayContext) {
final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
- mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
+ displayContext, KeyboardTheme.getKeyboardTheme(displayContext /* context */));
if (themeUpdated && mKeyboardView != null) {
- mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
+ mLatinIME.setInputView(
+ onCreateInputView(displayContext, mIsHardwareAcceleratedDrawingEnabled));
}
}
private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
final KeyboardTheme keyboardTheme) {
- if (mThemeContext == null || !keyboardTheme.equals(mKeyboardTheme)) {
+ if (mThemeContext == null || !keyboardTheme.equals(mKeyboardTheme)
+ || !mThemeContext.getResources().equals(context.getResources())) {
mKeyboardTheme = keyboardTheme;
mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
KeyboardLayoutSet.onKeyboardThemeChanged();
@@ -454,13 +458,14 @@
}
}
- public View onCreateInputView(final boolean isHardwareAcceleratedDrawingEnabled) {
+ public View onCreateInputView(@NonNull Context displayContext,
+ final boolean isHardwareAcceleratedDrawingEnabled) {
if (mKeyboardView != null) {
mKeyboardView.closing();
}
updateKeyboardThemeAndContextThemeWrapper(
- mLatinIME, KeyboardTheme.getKeyboardTheme(mLatinIME /* context */));
+ displayContext, KeyboardTheme.getKeyboardTheme(displayContext /* context */));
mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
R.layout.input_view, null);
mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 4b6ab7e..737bd0d 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -16,6 +16,8 @@
package com.android.inputmethod.latin;
+import static android.view.Display.INVALID_DISPLAY;
+
import static com.android.inputmethod.latin.common.Constants.ImeOption.FORCE_ASCII;
import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE;
import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE_COMPAT;
@@ -107,6 +109,7 @@
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
/**
* Input method implementation for Qwerty'ish keyboard.
@@ -118,7 +121,6 @@
static final String TAG = LatinIME.class.getSimpleName();
private static final boolean TRACE = false;
- private static final int EXTENDED_TOUCHABLE_REGION_HEIGHT = 100;
private static final int PERIOD_FOR_AUDIO_AND_HAPTIC_FEEDBACK_IN_KEY_REPEAT = 2;
private static final int PENDING_IMS_CALLBACK_DURATION_MILLIS = 800;
static final long DELAY_WAIT_FOR_DICTIONARY_LOAD_MILLIS = TimeUnit.SECONDS.toMillis(2);
@@ -166,6 +168,10 @@
// {@link #onEvaluateInputViewShown()}.
private boolean mIsExecutingStartShowingInputView;
+ // Used for re-initialize keyboard layout after onConfigurationChange.
+ @Nullable private Context mDisplayContext;
+ private int mCurDisplayId = INVALID_DISPLAY;
+
// Object for reacting to adding/removing a dictionary pack.
private final BroadcastReceiver mDictionaryPackInstallReceiver =
new DictionaryPackInstallBroadcastReceiver(this);
@@ -594,10 +600,13 @@
DebugFlags.init(PreferenceManager.getDefaultSharedPreferences(this));
RichInputMethodManager.init(this);
mRichImm = RichInputMethodManager.getInstance();
- KeyboardSwitcher.init(this);
AudioAndHapticFeedbackManager.init(this);
AccessibilityUtils.init(this);
mStatsUtilsManager.onCreate(this /* context */, mDictionaryFacilitator);
+ final WindowManager wm = getSystemService(WindowManager.class);
+ mDisplayContext = createDisplayContext(wm.getDefaultDisplay());
+ mCurDisplayId = wm.getDefaultDisplay().getDisplayId();
+ KeyboardSwitcher.init(this);
super.onCreate();
mHandler.onCreate();
@@ -785,9 +794,27 @@
}
@Override
+ public void onInitializeInterface() {
+ // TODO (b/133825283): Non-activity components Resources / DisplayMetrics update when
+ // moving to external display.
+ // An issue in Q that non-activity components Resources / DisplayMetrics in
+ // Context doesn't well updated when moving to external display.
+ // Currently we do a workaround is to check if IME is moving to new display, if so,
+ // create new display context and re-init keyboard layout with this context.
+ final WindowManager wm = getSystemService(WindowManager.class);
+ final int newDisplayId = wm.getDefaultDisplay().getDisplayId();
+ if (mCurDisplayId != newDisplayId) {
+ mCurDisplayId = newDisplayId;
+ mDisplayContext = createDisplayContext(wm.getDefaultDisplay());
+ mKeyboardSwitcher.updateKeyboardTheme(mDisplayContext);
+ }
+ }
+
+ @Override
public View onCreateInputView() {
StatsUtils.onCreateInputView();
- return mKeyboardSwitcher.onCreateInputView(mIsHardwareAcceleratedDrawingEnabled);
+ return mKeyboardSwitcher.onCreateInputView(mDisplayContext,
+ mIsHardwareAcceleratedDrawingEnabled);
}
@Override
@@ -870,7 +897,7 @@
mGestureConsumer = GestureConsumer.NULL_GESTURE_CONSUMER;
mRichImm.refreshSubtypeCaches();
final KeyboardSwitcher switcher = mKeyboardSwitcher;
- switcher.updateKeyboardTheme();
+ switcher.updateKeyboardTheme(mDisplayContext);
final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
// If we are starting input in a different text field from before, we'll have to reload
// settings, so currentSettingsValues can't be final.
@@ -1212,9 +1239,7 @@
final int touchLeft = 0;
final int touchTop = mKeyboardSwitcher.isShowingMoreKeysPanel() ? 0 : visibleTopY;
final int touchRight = visibleKeyboardView.getWidth();
- final int touchBottom = inputHeight
- // Extend touchable region below the keyboard.
- + EXTENDED_TOUCHABLE_REGION_HEIGHT;
+ final int touchBottom = inputHeight;
outInsets.touchableInsets = InputMethodService.Insets.TOUCHABLE_INSETS_REGION;
outInsets.touchableRegion.set(touchLeft, touchTop, touchRight, touchBottom);
}