Use keyboardSet extra value of subtype to specify layout type
Change-Id: Ice1f345a08a8d760e3b847c885c4072e3e142c97main
parent
cb389ef0d6
commit
11d9ee742f
|
@ -40,7 +40,7 @@
|
||||||
void setLogFileManager(...);
|
void setLogFileManager(...);
|
||||||
}
|
}
|
||||||
|
|
||||||
-keep class com.android.inputmethod.keyboard.KeyboardSet$Builder {
|
-keep class com.android.inputmethod.keyboard.KeyboardLayoutSet$Builder {
|
||||||
void setTouchPositionCorrectionEnabled(...);
|
void setTouchPositionCorrectionEnabled(...);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -350,8 +350,8 @@
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
<declare-styleable name="Keyboard_Case">
|
<declare-styleable name="Keyboard_Case">
|
||||||
<!-- This should be aligned with KeyboardSet_Element's elementName. -->
|
<!-- This should be aligned with KeyboardLayoutSet_Element's elementName. -->
|
||||||
<attr name="keyboardSetElement" format="enum|string">
|
<attr name="keyboardLayoutSetElement" format="enum|string">
|
||||||
<enum name="alphabet" value="0" />
|
<enum name="alphabet" value="0" />
|
||||||
<enum name="alphabetManualShifted" value="1" />
|
<enum name="alphabetManualShifted" value="1" />
|
||||||
<enum name="alphabetAutomaticShifted" value="2" />
|
<enum name="alphabetAutomaticShifted" value="2" />
|
||||||
|
@ -403,7 +403,7 @@
|
||||||
<attr name="parentStyle" format="string" />
|
<attr name="parentStyle" format="string" />
|
||||||
</declare-styleable>
|
</declare-styleable>
|
||||||
|
|
||||||
<declare-styleable name="KeyboardSet_Element">
|
<declare-styleable name="KeyboardLayoutSet_Element">
|
||||||
<!-- This should be aligned with KeyboardId.ELEMENT_* -->
|
<!-- This should be aligned with KeyboardId.ELEMENT_* -->
|
||||||
<attr name="elementName" format="enum">
|
<attr name="elementName" format="enum">
|
||||||
<enum name="alphabet" value="0" />
|
<enum name="alphabet" value="0" />
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_arabic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_east_slavic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwertz"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_nordic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwertz"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_nordic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_nordic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwertz"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwertz"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwertz"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_nordic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_east_slavic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_south_slavic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_nordic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="hasShiftedLetterHintStyle"
|
latin:styleName="hasShiftedLetterHintStyle"
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<!-- Functional key styles -->
|
<!-- Functional key styles -->
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
latin:backgroundType="stickyOff" />
|
latin:backgroundType="stickyOff" />
|
||||||
</case>
|
</case>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
latin:backgroundType="functional" />
|
latin:backgroundType="functional" />
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
latin:navigatePrevious="true"
|
latin:navigatePrevious="true"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E51: "๑" THAI DIGIT ONE -->
|
<!-- U+0E51: "๑" THAI DIGIT ONE -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E50: "๐" THAI DIGIT ZERO -->
|
<!-- U+0E50: "๐" THAI DIGIT ZERO -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E24: "ฤ" THAI CHARACTER RU -->
|
<!-- U+0E24: "ฤ" THAI CHARACTER RU -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<Key
|
<Key
|
||||||
latin:keyLabel="(" />
|
latin:keyLabel="(" />
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="hasShiftedLetterHintStyle"
|
latin:styleName="hasShiftedLetterHintStyle"
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
</switch>
|
</switch>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
latin:backgroundType="stickyOff" />
|
latin:backgroundType="stickyOff" />
|
||||||
</case>
|
</case>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -108,7 +108,7 @@
|
||||||
latin:backgroundType="functional" />
|
latin:backgroundType="functional" />
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
latin:navigatePrevious="true"
|
latin:navigatePrevious="true"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_east_slavic"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<Key
|
<Key
|
||||||
latin:keyLabel="\?" />
|
latin:keyLabel="\?" />
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<Key
|
<Key
|
||||||
latin:keyLabel=":"
|
latin:keyLabel=":"
|
||||||
|
|
|
@ -42,7 +42,7 @@
|
||||||
<!-- Functional key styles -->
|
<!-- Functional key styles -->
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetAutomaticShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
latin:backgroundType="stickyOff" />
|
latin:backgroundType="stickyOff" />
|
||||||
</case>
|
</case>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="shiftKeyStyle"
|
latin:styleName="shiftKeyStyle"
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
<!-- Shift + Enter in textMultiLine field. -->
|
<!-- Shift + Enter in textMultiLine field. -->
|
||||||
<case
|
<case
|
||||||
latin:isMultiLine="true"
|
latin:isMultiLine="true"
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="enterKeyStyle"
|
latin:styleName="enterKeyStyle"
|
||||||
|
|
|
@ -108,7 +108,7 @@
|
||||||
<!-- Shift + Enter in textMultiLine field. -->
|
<!-- Shift + Enter in textMultiLine field. -->
|
||||||
<case
|
<case
|
||||||
latin:isMultiLine="true"
|
latin:isMultiLine="true"
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<key-style
|
<key-style
|
||||||
latin:styleName="enterKeyStyle"
|
latin:styleName="enterKeyStyle"
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<KeyboardLayoutSet
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
|
<Element
|
||||||
|
latin:elementName="alphabet"
|
||||||
|
latin:elementKeyboard="@xml/kbd_arabic"
|
||||||
|
latin:enableProximityCharsCorrection="true" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="symbols"
|
||||||
|
latin:elementKeyboard="@xml/kbd_symbols" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="symbolsShifted"
|
||||||
|
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="phone"
|
||||||
|
latin:elementKeyboard="@xml/kbd_phone" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="phoneSymbols"
|
||||||
|
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="number"
|
||||||
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
|
</KeyboardLayoutSet>
|
|
@ -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");
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** you may not use this file except in compliance with the License.
|
** you may not use this file except in compliance with the License.
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -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");
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** you may not use this file except in compliance with the License.
|
** you may not use this file except in compliance with the License.
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -55,4 +55,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -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");
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** you may not use this file except in compliance with the License.
|
** you may not use this file except in compliance with the License.
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -55,4 +55,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -0,0 +1,42 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!--
|
||||||
|
/*
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
** You may obtain a copy of the License at
|
||||||
|
**
|
||||||
|
** http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
**
|
||||||
|
** Unless required by applicable law or agreed to in writing, software
|
||||||
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
** See the License for the specific language governing permissions and
|
||||||
|
** limitations under the License.
|
||||||
|
*/
|
||||||
|
-->
|
||||||
|
|
||||||
|
<KeyboardLayoutSet
|
||||||
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
|
<Element
|
||||||
|
latin:elementName="alphabet"
|
||||||
|
latin:elementKeyboard="@xml/kbd_qwertz"
|
||||||
|
latin:enableProximityCharsCorrection="true" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="symbols"
|
||||||
|
latin:elementKeyboard="@xml/kbd_symbols" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="symbolsShifted"
|
||||||
|
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="phone"
|
||||||
|
latin:elementKeyboard="@xml/kbd_phone" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="phoneSymbols"
|
||||||
|
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
||||||
|
<Element
|
||||||
|
latin:elementName="number"
|
||||||
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -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");
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
** you may not use this file except in compliance with the License.
|
** you may not use this file except in compliance with the License.
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -39,4 +39,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -18,7 +18,7 @@
|
||||||
*/
|
*/
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<KeyboardSet
|
<KeyboardLayoutSet
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="alphabet"
|
latin:elementName="alphabet"
|
||||||
|
@ -55,4 +55,4 @@
|
||||||
<Element
|
<Element
|
||||||
latin:elementName="number"
|
latin:elementName="number"
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
latin:elementKeyboard="@xml/kbd_number" />
|
||||||
</KeyboardSet>
|
</KeyboardLayoutSet>
|
|
@ -1,42 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
/*
|
|
||||||
**
|
|
||||||
** Copyright 2011, 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.
|
|
||||||
** You may obtain a copy of the License at
|
|
||||||
**
|
|
||||||
** http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
**
|
|
||||||
** Unless required by applicable law or agreed to in writing, software
|
|
||||||
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
** See the License for the specific language governing permissions and
|
|
||||||
** limitations under the License.
|
|
||||||
*/
|
|
||||||
-->
|
|
||||||
|
|
||||||
<KeyboardSet
|
|
||||||
xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin">
|
|
||||||
<Element
|
|
||||||
latin:elementName="alphabet"
|
|
||||||
latin:elementKeyboard="@xml/kbd_qwerty"
|
|
||||||
latin:enableProximityCharsCorrection="true" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="symbolsShifted"
|
|
||||||
latin:elementKeyboard="@xml/kbd_symbols_shift" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phone"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="phoneSymbols"
|
|
||||||
latin:elementKeyboard="@xml/kbd_phone_symbols" />
|
|
||||||
<Element
|
|
||||||
latin:elementName="number"
|
|
||||||
latin:elementKeyboard="@xml/kbd_number" />
|
|
||||||
</KeyboardSet>
|
|
|
@ -20,7 +20,8 @@
|
||||||
<!-- The attributes in this XML file provide configuration information -->
|
<!-- The attributes in this XML file provide configuration information -->
|
||||||
<!-- for the Input Method Manager. -->
|
<!-- for the Input Method Manager. -->
|
||||||
|
|
||||||
<!-- Supported locales: name/layout
|
<!-- Supported subtypes
|
||||||
|
keyboard_locale: script_name/keyboard_layout_set[:keyboard_locale]
|
||||||
ar: Arabic/arabic
|
ar: Arabic/arabic
|
||||||
be: Belarusian/east_slavic
|
be: Belarusian/east_slavic
|
||||||
bg: Bulgarian/bulgarian
|
bg: Bulgarian/bulgarian
|
||||||
|
@ -75,246 +76,259 @@
|
||||||
android:label="@string/subtype_en_US"
|
android:label="@string/subtype_en_US"
|
||||||
android:imeSubtypeLocale="en_US"
|
android:imeSubtypeLocale="en_US"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="TrySuppressingImeSwitcher,AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,TrySuppressingImeSwitcher,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_en_GB"
|
android:label="@string/subtype_en_GB"
|
||||||
android:imeSubtypeLocale="en_GB"
|
android:imeSubtypeLocale="en_GB"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="TrySuppressingImeSwitcher,AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,TrySuppressingImeSwitcher,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="ar"
|
android:imeSubtypeLocale="ar"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=arabic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="be"
|
android:imeSubtypeLocale="be"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=east_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="bg"
|
android:imeSubtypeLocale="bg"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=bulgarian"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="cs"
|
android:imeSubtypeLocale="cs"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwertz,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="da"
|
android:imeSubtypeLocale="da"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=nordic,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="de"
|
android:imeSubtypeLocale="de"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwertz,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic_qwerty"
|
android:label="@string/subtype_generic_qwerty"
|
||||||
android:imeSubtypeLocale="de"
|
android:imeSubtypeLocale="de"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable,KeyboardLocale=de_QY"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty:de_QY,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="el"
|
android:imeSubtypeLocale="el"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=greek"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="es"
|
android:imeSubtypeLocale="es"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=spanish,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="et"
|
android:imeSubtypeLocale="et"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=nordic,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="fa"
|
android:imeSubtypeLocale="fa"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=farsi"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="fi"
|
android:imeSubtypeLocale="fi"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=nordic,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="fr"
|
android:imeSubtypeLocale="fr"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=azerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="fr_CA"
|
android:imeSubtypeLocale="fr_CA"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="fr_CH"
|
android:imeSubtypeLocale="fr_CH"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwertz,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="hi"
|
android:imeSubtypeLocale="hi"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=hindi"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="hr"
|
android:imeSubtypeLocale="hr"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwertz,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="hu"
|
android:imeSubtypeLocale="hu"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwertz,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="is"
|
android:imeSubtypeLocale="is"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="it"
|
android:imeSubtypeLocale="it"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<!-- Java uses the deprecated "iw" code instead of the standard "he" code for Hebrew. -->
|
<!-- Java uses the deprecated "iw" code instead of the standard "he" code for Hebrew. -->
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="iw"
|
android:imeSubtypeLocale="iw"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=hebrew"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="ka"
|
android:imeSubtypeLocale="ka"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=georgian"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="ky"
|
android:imeSubtypeLocale="ky"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=east_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="lt"
|
android:imeSubtypeLocale="lt"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="lv"
|
android:imeSubtypeLocale="lv"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="mk"
|
android:imeSubtypeLocale="mk"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=south_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="nb"
|
android:imeSubtypeLocale="nb"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=nordic,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="nl"
|
android:imeSubtypeLocale="nl"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="pl"
|
android:imeSubtypeLocale="pl"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="pt"
|
android:imeSubtypeLocale="pt"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="ro"
|
android:imeSubtypeLocale="ro"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="ru"
|
android:imeSubtypeLocale="ru"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=east_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="sk"
|
android:imeSubtypeLocale="sk"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="sl"
|
android:imeSubtypeLocale="sl"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="sr"
|
android:imeSubtypeLocale="sr"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=south_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="sv"
|
android:imeSubtypeLocale="sv"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=nordic,AsciiCapable"
|
||||||
/>
|
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
|
||||||
android:label="@string/subtype_generic"
|
|
||||||
android:imeSubtypeLocale="tr"
|
|
||||||
android:imeSubtypeMode="keyboard"
|
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="th"
|
android:imeSubtypeLocale="th"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue=""
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=thai"
|
||||||
|
/>
|
||||||
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
|
android:label="@string/subtype_generic"
|
||||||
|
android:imeSubtypeLocale="tr"
|
||||||
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="uk"
|
android:imeSubtypeLocale="uk"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=east_slavic"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_generic"
|
android:label="@string/subtype_generic"
|
||||||
android:imeSubtypeLocale="vi"
|
android:imeSubtypeLocale="vi"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable"
|
||||||
/>
|
/>
|
||||||
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
<subtype android:icon="@drawable/ic_subtype_keyboard"
|
||||||
android:label="@string/subtype_no_language_qwerty"
|
android:label="@string/subtype_no_language_qwerty"
|
||||||
android:imeSubtypeLocale="zz_QY"
|
android:imeSubtypeLocale="zz_QY"
|
||||||
android:imeSubtypeMode="keyboard"
|
android:imeSubtypeMode="keyboard"
|
||||||
android:imeSubtypeExtraValue="AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable"
|
android:imeSubtypeExtraValue="KeyboardLayoutSet=qwerty,AsciiCapable,EnabledWhenDefaultIsNotAsciiCapable"
|
||||||
/>
|
/>
|
||||||
</input-method>
|
</input-method>
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<Key
|
<Key
|
||||||
latin:keyLabel="Q"
|
latin:keyLabel="Q"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<Key
|
<Key
|
||||||
latin:keyLabel="A"
|
latin:keyLabel="A"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+10EB: "ძ" GEORGIAN LETTER JIL -->
|
<!-- U+10EB: "ძ" GEORGIAN LETTER JIL -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<!--
|
<!--
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
U+0385: "΅" GREEK DIALYTIKA TONOS
|
U+0385: "΅" GREEK DIALYTIKA TONOS
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0914: "औ" DEVANAGARI LETTER AU
|
<!-- U+0914: "औ" DEVANAGARI LETTER AU
|
||||||
U+0912/U+0902: "ऒं" DEVANAGARI LETTER SHORT O//DEVANAGARI SIGN ANUSVARA -->
|
U+0912/U+0902: "ऒं" DEVANAGARI LETTER SHORT O//DEVANAGARI SIGN ANUSVARA -->
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0913: "ओ" DEVANAGARI LETTER O
|
<!-- U+0913: "ओ" DEVANAGARI LETTER O
|
||||||
U+0913/U+0902: "ओं" DEVANAGARI LETTER O/DEVANAGARI SIGN ANUSVARA
|
U+0913/U+0902: "ओं" DEVANAGARI LETTER O/DEVANAGARI SIGN ANUSVARA
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
|
<!-- U+0911: "ऑ" DEVANAGARI LETTER CANDRA O -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E0E: "ฎ" THAI CHARACTER DO CHADA -->
|
<!-- U+0E0E: "ฎ" THAI CHARACTER DO CHADA -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E24: "ฤ" THAI CHARACTER RU -->
|
<!-- U+0E24: "ฤ" THAI CHARACTER RU -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
>
|
>
|
||||||
<switch>
|
<switch>
|
||||||
<case
|
<case
|
||||||
latin:keyboardSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted"
|
||||||
>
|
>
|
||||||
<!-- U+0E09: "ฉ" THAI CHARACTER CHO CHING -->
|
<!-- U+0E09: "ฉ" THAI CHARACTER CHO CHING -->
|
||||||
<Key
|
<Key
|
||||||
|
|
|
@ -239,7 +239,7 @@ public class Keyboard {
|
||||||
public final ArrayList<Key> mAltCodeKeysWhileTyping = new ArrayList<Key>();
|
public final ArrayList<Key> mAltCodeKeysWhileTyping = new ArrayList<Key>();
|
||||||
public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet();
|
public final KeyboardIconsSet mIconsSet = new KeyboardIconsSet();
|
||||||
|
|
||||||
public KeyboardSet.KeysCache mKeysCache;
|
public KeyboardLayoutSet.KeysCache mKeysCache;
|
||||||
|
|
||||||
public int mMostCommonKeyHeight = 0;
|
public int mMostCommonKeyHeight = 0;
|
||||||
public int mMostCommonKeyWidth = 0;
|
public int mMostCommonKeyWidth = 0;
|
||||||
|
@ -637,7 +637,7 @@ public class Keyboard {
|
||||||
params.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
|
params.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAutoGenerate(KeyboardSet.KeysCache keysCache) {
|
public void setAutoGenerate(KeyboardLayoutSet.KeysCache keysCache) {
|
||||||
mParams.mKeysCache = keysCache;
|
mParams.mKeysCache = keysCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1061,8 +1061,8 @@ public class Keyboard {
|
||||||
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
R.styleable.Keyboard_Case);
|
R.styleable.Keyboard_Case);
|
||||||
try {
|
try {
|
||||||
final boolean keyboardSetElementMatched = matchTypedValue(a,
|
final boolean keyboardLayoutSetElementMatched = matchTypedValue(a,
|
||||||
R.styleable.Keyboard_Case_keyboardSetElement, id.mElementId,
|
R.styleable.Keyboard_Case_keyboardLayoutSetElement, id.mElementId,
|
||||||
KeyboardId.elementIdToName(id.mElementId));
|
KeyboardId.elementIdToName(id.mElementId));
|
||||||
final boolean modeMatched = matchTypedValue(a,
|
final boolean modeMatched = matchTypedValue(a,
|
||||||
R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode));
|
R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode));
|
||||||
|
@ -1091,7 +1091,7 @@ public class Keyboard {
|
||||||
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
|
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
|
||||||
final boolean countryCodeMatched = matchString(a,
|
final boolean countryCodeMatched = matchString(a,
|
||||||
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
|
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
|
||||||
final boolean selected = keyboardSetElementMatched && modeMatched
|
final boolean selected = keyboardLayoutSetElementMatched && modeMatched
|
||||||
&& navigateNextMatched && navigatePreviousMatched && passwordInputMatched
|
&& navigateNextMatched && navigatePreviousMatched && passwordInputMatched
|
||||||
&& clobberSettingsKeyMatched && shortcutKeyEnabledMatched
|
&& clobberSettingsKeyMatched && shortcutKeyEnabledMatched
|
||||||
&& hasShortcutKeyMatched && languageSwitchKeyEnabledMatched
|
&& hasShortcutKeyMatched && languageSwitchKeyEnabledMatched
|
||||||
|
@ -1100,8 +1100,9 @@ public class Keyboard {
|
||||||
|
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
|
startTag("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s>%s", TAG_CASE,
|
||||||
textAttr(a.getString(R.styleable.Keyboard_Case_keyboardSetElement),
|
textAttr(a.getString(
|
||||||
"keyboardSetElement"),
|
R.styleable.Keyboard_Case_keyboardLayoutSetElement),
|
||||||
|
"keyboardLayoutSetElement"),
|
||||||
textAttr(a.getString(R.styleable.Keyboard_Case_mode), "mode"),
|
textAttr(a.getString(R.styleable.Keyboard_Case_mode), "mode"),
|
||||||
textAttr(a.getString(R.styleable.Keyboard_Case_imeAction),
|
textAttr(a.getString(R.styleable.Keyboard_Case_imeAction),
|
||||||
"imeAction"),
|
"imeAction"),
|
||||||
|
|
|
@ -28,14 +28,17 @@ import android.view.inputmethod.EditorInfo;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
import com.android.inputmethod.compat.EditorInfoCompatUtils;
|
||||||
import com.android.inputmethod.keyboard.KeyboardSet.Params.ElementParams;
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet.Params.ElementParams;
|
||||||
|
import com.android.inputmethod.keyboard.internal.KeySpecParser;
|
||||||
import com.android.inputmethod.latin.InputTypeUtils;
|
import com.android.inputmethod.latin.InputTypeUtils;
|
||||||
import com.android.inputmethod.latin.LatinIME;
|
import com.android.inputmethod.latin.LatinIME;
|
||||||
import com.android.inputmethod.latin.LatinImeLogger;
|
import com.android.inputmethod.latin.LatinImeLogger;
|
||||||
|
import com.android.inputmethod.latin.LocaleUtils;
|
||||||
import com.android.inputmethod.latin.LocaleUtils.RunInLocale;
|
import com.android.inputmethod.latin.LocaleUtils.RunInLocale;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.StringUtils;
|
import com.android.inputmethod.latin.StringUtils;
|
||||||
import com.android.inputmethod.latin.SubtypeLocale;
|
import com.android.inputmethod.latin.SubtypeLocale;
|
||||||
|
import com.android.inputmethod.latin.SubtypeSwitcher;
|
||||||
import com.android.inputmethod.latin.XmlParseUtils;
|
import com.android.inputmethod.latin.XmlParseUtils;
|
||||||
|
|
||||||
import org.xmlpull.v1.XmlPullParser;
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
|
@ -47,18 +50,25 @@ import java.util.HashMap;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class represents a set of keyboards. Each of them represents a different keyboard
|
* This class represents a set of keyboard layouts. Each of them represents a different keyboard
|
||||||
* specific to a keyboard state, such as alphabet, symbols, and so on. Layouts in the same
|
* specific to a keyboard state, such as alphabet, symbols, and so on. Layouts in the same
|
||||||
* {@link KeyboardSet} are related to each other.
|
* {@link KeyboardLayoutSet} are related to each other.
|
||||||
* A {@link KeyboardSet} needs to be created for each {@link android.view.inputmethod.EditorInfo}.
|
* A {@link KeyboardLayoutSet} needs to be created for each
|
||||||
|
* {@link android.view.inputmethod.EditorInfo}.
|
||||||
*/
|
*/
|
||||||
public class KeyboardSet {
|
public class KeyboardLayoutSet {
|
||||||
private static final String TAG = KeyboardSet.class.getSimpleName();
|
private static final String TAG = KeyboardLayoutSet.class.getSimpleName();
|
||||||
private static final boolean DEBUG_CACHE = LatinImeLogger.sDBG;
|
private static final boolean DEBUG_CACHE = LatinImeLogger.sDBG;
|
||||||
|
|
||||||
private static final String TAG_KEYBOARD_SET = "KeyboardSet";
|
private static final String TAG_KEYBOARD_SET = "KeyboardLayoutSet";
|
||||||
private static final String TAG_ELEMENT = "Element";
|
private static final String TAG_ELEMENT = "Element";
|
||||||
|
|
||||||
|
private static final String DEFAULT_KEYBOARD_LAYOUT_SET = "qwerty";
|
||||||
|
private static final char KEYBOARD_LAYOUT_SET_LOCALE_DELIMITER = ':';
|
||||||
|
private static final String KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX = "xml/keyboard_layout_set_";
|
||||||
|
private static final int DEFAULT_KEYBOARD_LAYOUT_SET_RESOURCE_ID =
|
||||||
|
R.xml.keyboard_layout_set_qwerty;
|
||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final Params mParams;
|
private final Params mParams;
|
||||||
|
|
||||||
|
@ -66,10 +76,10 @@ public class KeyboardSet {
|
||||||
new HashMap<KeyboardId, SoftReference<Keyboard>>();
|
new HashMap<KeyboardId, SoftReference<Keyboard>>();
|
||||||
private static final KeysCache sKeysCache = new KeysCache();
|
private static final KeysCache sKeysCache = new KeysCache();
|
||||||
|
|
||||||
public static class KeyboardSetException extends RuntimeException {
|
public static class KeyboardLayoutSetException extends RuntimeException {
|
||||||
public final KeyboardId mKeyboardId;
|
public final KeyboardId mKeyboardId;
|
||||||
|
|
||||||
public KeyboardSetException(Throwable cause, KeyboardId keyboardId) {
|
public KeyboardLayoutSetException(Throwable cause, KeyboardId keyboardId) {
|
||||||
super(cause);
|
super(cause);
|
||||||
mKeyboardId = keyboardId;
|
mKeyboardId = keyboardId;
|
||||||
}
|
}
|
||||||
|
@ -98,6 +108,7 @@ public class KeyboardSet {
|
||||||
}
|
}
|
||||||
|
|
||||||
static class Params {
|
static class Params {
|
||||||
|
String mKeyboardLayoutSetName;
|
||||||
int mMode;
|
int mMode;
|
||||||
EditorInfo mEditorInfo;
|
EditorInfo mEditorInfo;
|
||||||
boolean mTouchPositionCorrectionEnabled;
|
boolean mTouchPositionCorrectionEnabled;
|
||||||
|
@ -108,8 +119,8 @@ public class KeyboardSet {
|
||||||
Locale mLocale;
|
Locale mLocale;
|
||||||
int mOrientation;
|
int mOrientation;
|
||||||
int mWidth;
|
int mWidth;
|
||||||
// KeyboardSet element id to element's parameters map.
|
// KeyboardLayoutSet element id to element's parameters map.
|
||||||
final HashMap<Integer, ElementParams> mKeyboardSetElementIdToParamsMap =
|
final HashMap<Integer, ElementParams> mKeyboardLayoutSetElementIdToParamsMap =
|
||||||
new HashMap<Integer, ElementParams>();
|
new HashMap<Integer, ElementParams>();
|
||||||
|
|
||||||
static class ElementParams {
|
static class ElementParams {
|
||||||
|
@ -123,43 +134,43 @@ public class KeyboardSet {
|
||||||
sKeysCache.clear();
|
sKeysCache.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
private KeyboardSet(Context context, Params params) {
|
private KeyboardLayoutSet(Context context, Params params) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mParams = params;
|
mParams = params;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Keyboard getKeyboard(int baseKeyboardSetElementId) {
|
public Keyboard getKeyboard(int baseKeyboardLayoutSetElementId) {
|
||||||
final int keyboardSetElementId;
|
final int keyboardLayoutSetElementId;
|
||||||
switch (mParams.mMode) {
|
switch (mParams.mMode) {
|
||||||
case KeyboardId.MODE_PHONE:
|
case KeyboardId.MODE_PHONE:
|
||||||
if (baseKeyboardSetElementId == KeyboardId.ELEMENT_SYMBOLS) {
|
if (baseKeyboardLayoutSetElementId == KeyboardId.ELEMENT_SYMBOLS) {
|
||||||
keyboardSetElementId = KeyboardId.ELEMENT_PHONE_SYMBOLS;
|
keyboardLayoutSetElementId = KeyboardId.ELEMENT_PHONE_SYMBOLS;
|
||||||
} else {
|
} else {
|
||||||
keyboardSetElementId = KeyboardId.ELEMENT_PHONE;
|
keyboardLayoutSetElementId = KeyboardId.ELEMENT_PHONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case KeyboardId.MODE_NUMBER:
|
case KeyboardId.MODE_NUMBER:
|
||||||
case KeyboardId.MODE_DATE:
|
case KeyboardId.MODE_DATE:
|
||||||
case KeyboardId.MODE_TIME:
|
case KeyboardId.MODE_TIME:
|
||||||
case KeyboardId.MODE_DATETIME:
|
case KeyboardId.MODE_DATETIME:
|
||||||
keyboardSetElementId = KeyboardId.ELEMENT_NUMBER;
|
keyboardLayoutSetElementId = KeyboardId.ELEMENT_NUMBER;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
keyboardSetElementId = baseKeyboardSetElementId;
|
keyboardLayoutSetElementId = baseKeyboardLayoutSetElementId;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
ElementParams elementParams = mParams.mKeyboardSetElementIdToParamsMap.get(
|
ElementParams elementParams = mParams.mKeyboardLayoutSetElementIdToParamsMap.get(
|
||||||
keyboardSetElementId);
|
keyboardLayoutSetElementId);
|
||||||
if (elementParams == null) {
|
if (elementParams == null) {
|
||||||
elementParams = mParams.mKeyboardSetElementIdToParamsMap.get(
|
elementParams = mParams.mKeyboardLayoutSetElementIdToParamsMap.get(
|
||||||
KeyboardId.ELEMENT_ALPHABET);
|
KeyboardId.ELEMENT_ALPHABET);
|
||||||
}
|
}
|
||||||
final KeyboardId id = getKeyboardId(keyboardSetElementId);
|
final KeyboardId id = getKeyboardId(keyboardLayoutSetElementId);
|
||||||
try {
|
try {
|
||||||
return getKeyboard(mContext, elementParams, id);
|
return getKeyboard(mContext, elementParams, id);
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
throw new KeyboardSetException(e, id);
|
throw new KeyboardLayoutSetException(e, id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -199,21 +210,46 @@ public class KeyboardSet {
|
||||||
return keyboard;
|
return keyboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: The keyboard for each locale, shift state, and mode are represented as KeyboardSet
|
// Note: The keyboard for each locale, shift state, and mode are represented as
|
||||||
// element id that is a key in keyboard_set.xml. Also that file specifies which XML layout
|
// KeyboardLayoutSet element id that is a key in keyboard_set.xml. Also that file specifies
|
||||||
// should be used for each keyboard. The KeyboardId is an internal key for Keyboard object.
|
// which XML layout should be used for each keyboard. The KeyboardId is an internal key for
|
||||||
private KeyboardId getKeyboardId(int keyboardSetElementId) {
|
// Keyboard object.
|
||||||
|
private KeyboardId getKeyboardId(int keyboardLayoutSetElementId) {
|
||||||
final Params params = mParams;
|
final Params params = mParams;
|
||||||
final boolean isSymbols = (keyboardSetElementId == KeyboardId.ELEMENT_SYMBOLS
|
final boolean isSymbols = (keyboardLayoutSetElementId == KeyboardId.ELEMENT_SYMBOLS
|
||||||
|| keyboardSetElementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED);
|
|| keyboardLayoutSetElementId == KeyboardId.ELEMENT_SYMBOLS_SHIFTED);
|
||||||
final boolean noLanguage = params.mLocale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE);
|
final boolean noLanguage = params.mLocale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE);
|
||||||
final boolean voiceKeyEnabled = params.mVoiceKeyEnabled && !noLanguage;
|
final boolean voiceKeyEnabled = params.mVoiceKeyEnabled && !noLanguage;
|
||||||
final boolean hasShortcutKey = voiceKeyEnabled && (isSymbols != params.mVoiceKeyOnMain);
|
final boolean hasShortcutKey = voiceKeyEnabled && (isSymbols != params.mVoiceKeyOnMain);
|
||||||
return new KeyboardId(keyboardSetElementId, params.mLocale, params.mOrientation,
|
return new KeyboardId(keyboardLayoutSetElementId, params.mLocale, params.mOrientation,
|
||||||
params.mWidth, params.mMode, params.mEditorInfo, params.mNoSettingsKey,
|
params.mWidth, params.mMode, params.mEditorInfo, params.mNoSettingsKey,
|
||||||
voiceKeyEnabled, hasShortcutKey, params.mLanguageSwitchKeyEnabled);
|
voiceKeyEnabled, hasShortcutKey, params.mLanguageSwitchKeyEnabled);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getKeyboardLayoutSetName(InputMethodSubtype subtype) {
|
||||||
|
final String keyboardLayoutSet = subtype.getExtraValueOf(
|
||||||
|
LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LAYOUT_SET);
|
||||||
|
// TODO: Remove this null check when InputMethodManager.getCurrentInputMethodSubtype is
|
||||||
|
// fixed.
|
||||||
|
if (keyboardLayoutSet == null) return DEFAULT_KEYBOARD_LAYOUT_SET;
|
||||||
|
final int pos = keyboardLayoutSet.indexOf(KEYBOARD_LAYOUT_SET_LOCALE_DELIMITER);
|
||||||
|
return (pos > 0) ? keyboardLayoutSet.substring(0, pos) : keyboardLayoutSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getKeyboardLayoutSetLocaleString(InputMethodSubtype subtype) {
|
||||||
|
final String keyboardLayoutSet = subtype.getExtraValueOf(
|
||||||
|
LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LAYOUT_SET);
|
||||||
|
// TODO: Remove this null check when InputMethodManager.getCurrentInputMethodSubtype is
|
||||||
|
// fixed.
|
||||||
|
if (keyboardLayoutSet == null) return subtype.getLocale();
|
||||||
|
final int pos = keyboardLayoutSet.indexOf(KEYBOARD_LAYOUT_SET_LOCALE_DELIMITER);
|
||||||
|
return (pos > 0) ? keyboardLayoutSet.substring(pos + 1) : subtype.getLocale();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Locale getKeyboardLayoutSetLocale(InputMethodSubtype subtype) {
|
||||||
|
return LocaleUtils.constructLocaleFromString(getKeyboardLayoutSetLocaleString(subtype));
|
||||||
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final String mPackageName;
|
private final String mPackageName;
|
||||||
|
@ -244,7 +280,6 @@ public class KeyboardSet {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Builder setSubtype(InputMethodSubtype subtype) {
|
public Builder setSubtype(InputMethodSubtype subtype) {
|
||||||
final Locale inputLocale = SubtypeLocale.getSubtypeLocale(subtype);
|
|
||||||
final boolean asciiCapable = subtype.containsExtraValueKey(
|
final boolean asciiCapable = subtype.containsExtraValueKey(
|
||||||
LatinIME.SUBTYPE_EXTRA_VALUE_ASCII_CAPABLE);
|
LatinIME.SUBTYPE_EXTRA_VALUE_ASCII_CAPABLE);
|
||||||
final boolean deprecatedForceAscii = StringUtils.inPrivateImeOptions(
|
final boolean deprecatedForceAscii = StringUtils.inPrivateImeOptions(
|
||||||
|
@ -252,8 +287,12 @@ public class KeyboardSet {
|
||||||
final boolean forceAscii = EditorInfoCompatUtils.hasFlagForceAscii(
|
final boolean forceAscii = EditorInfoCompatUtils.hasFlagForceAscii(
|
||||||
mParams.mEditorInfo.imeOptions)
|
mParams.mEditorInfo.imeOptions)
|
||||||
|| deprecatedForceAscii;
|
|| deprecatedForceAscii;
|
||||||
mParams.mLocale = (forceAscii && !asciiCapable)
|
final InputMethodSubtype keyboardSubtype = (forceAscii && !asciiCapable)
|
||||||
? SubtypeLocale.LOCALE_NO_LANGUAGE_QWERTY : inputLocale;
|
? SubtypeSwitcher.getInstance().getNoLanguageSubtype()
|
||||||
|
: subtype;
|
||||||
|
mParams.mLocale = getKeyboardLayoutSetLocale(keyboardSubtype);
|
||||||
|
mParams.mKeyboardLayoutSetName = KEYBOARD_LAYOUT_SET_RESOURCE_PREFIX
|
||||||
|
+ getKeyboardLayoutSetName(keyboardSubtype);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,31 +314,31 @@ public class KeyboardSet {
|
||||||
mParams.mTouchPositionCorrectionEnabled = enabled;
|
mParams.mTouchPositionCorrectionEnabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyboardSet build() {
|
public KeyboardLayoutSet build() {
|
||||||
if (mParams.mOrientation == Configuration.ORIENTATION_UNDEFINED)
|
if (mParams.mOrientation == Configuration.ORIENTATION_UNDEFINED)
|
||||||
throw new RuntimeException("Screen geometry is not specified");
|
throw new RuntimeException("Screen geometry is not specified");
|
||||||
if (mParams.mLocale == null)
|
if (mParams.mLocale == null)
|
||||||
throw new RuntimeException("KeyboardSet subtype is not specified");
|
throw new RuntimeException("KeyboardLayoutSet subtype is not specified");
|
||||||
|
final String keyboardLayoutSetName = mParams.mKeyboardLayoutSetName;
|
||||||
|
final int xmlId = KeySpecParser.getResourceId(
|
||||||
|
mResources, keyboardLayoutSetName, DEFAULT_KEYBOARD_LAYOUT_SET_RESOURCE_ID);
|
||||||
final RunInLocale<Void> job = new RunInLocale<Void>() {
|
final RunInLocale<Void> job = new RunInLocale<Void>() {
|
||||||
@Override
|
@Override
|
||||||
protected Void job(Resources res) {
|
protected Void job(Resources res) {
|
||||||
try {
|
try {
|
||||||
parseKeyboardSet(res, R.xml.keyboard_set);
|
parseKeyboardLayoutSet(res, xmlId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e.getMessage() + " in "
|
throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName);
|
||||||
+ res.getResourceName(R.xml.keyboard_set)
|
|
||||||
+ " of locale " + mParams.mLocale);
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
job.runInLocale(mResources, mParams.mLocale);
|
job.runInLocale(mResources, mParams.mLocale);
|
||||||
return new KeyboardSet(mContext, mParams);
|
return new KeyboardLayoutSet(mContext, mParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseKeyboardSet(Resources res, int resId) throws XmlPullParserException,
|
private void parseKeyboardLayoutSet(Resources res, int resId)
|
||||||
IOException {
|
throws XmlPullParserException, IOException {
|
||||||
final XmlResourceParser parser = res.getXml(resId);
|
final XmlResourceParser parser = res.getXml(resId);
|
||||||
try {
|
try {
|
||||||
int event;
|
int event;
|
||||||
|
@ -307,7 +346,7 @@ public class KeyboardSet {
|
||||||
if (event == XmlPullParser.START_TAG) {
|
if (event == XmlPullParser.START_TAG) {
|
||||||
final String tag = parser.getName();
|
final String tag = parser.getName();
|
||||||
if (TAG_KEYBOARD_SET.equals(tag)) {
|
if (TAG_KEYBOARD_SET.equals(tag)) {
|
||||||
parseKeyboardSetContent(parser);
|
parseKeyboardLayoutSetContent(parser);
|
||||||
} else {
|
} else {
|
||||||
throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET);
|
throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET);
|
||||||
}
|
}
|
||||||
|
@ -318,14 +357,14 @@ public class KeyboardSet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseKeyboardSetContent(XmlPullParser parser) throws XmlPullParserException,
|
private void parseKeyboardLayoutSetContent(XmlPullParser parser)
|
||||||
IOException {
|
throws XmlPullParserException, IOException {
|
||||||
int event;
|
int event;
|
||||||
while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) {
|
while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) {
|
||||||
if (event == XmlPullParser.START_TAG) {
|
if (event == XmlPullParser.START_TAG) {
|
||||||
final String tag = parser.getName();
|
final String tag = parser.getName();
|
||||||
if (TAG_ELEMENT.equals(tag)) {
|
if (TAG_ELEMENT.equals(tag)) {
|
||||||
parseKeyboardSetElement(parser);
|
parseKeyboardLayoutSetElement(parser);
|
||||||
} else {
|
} else {
|
||||||
throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET);
|
throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET);
|
||||||
}
|
}
|
||||||
|
@ -340,27 +379,28 @@ public class KeyboardSet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void parseKeyboardSetElement(XmlPullParser parser) throws XmlPullParserException,
|
private void parseKeyboardLayoutSetElement(XmlPullParser parser)
|
||||||
IOException {
|
throws XmlPullParserException, IOException {
|
||||||
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
|
||||||
R.styleable.KeyboardSet_Element);
|
R.styleable.KeyboardLayoutSet_Element);
|
||||||
try {
|
try {
|
||||||
XmlParseUtils.checkAttributeExists(a,
|
XmlParseUtils.checkAttributeExists(a,
|
||||||
R.styleable.KeyboardSet_Element_elementName, "elementName",
|
R.styleable.KeyboardLayoutSet_Element_elementName, "elementName",
|
||||||
TAG_ELEMENT, parser);
|
TAG_ELEMENT, parser);
|
||||||
XmlParseUtils.checkAttributeExists(a,
|
XmlParseUtils.checkAttributeExists(a,
|
||||||
R.styleable.KeyboardSet_Element_elementKeyboard, "elementKeyboard",
|
R.styleable.KeyboardLayoutSet_Element_elementKeyboard, "elementKeyboard",
|
||||||
TAG_ELEMENT, parser);
|
TAG_ELEMENT, parser);
|
||||||
XmlParseUtils.checkEndTag(TAG_ELEMENT, parser);
|
XmlParseUtils.checkEndTag(TAG_ELEMENT, parser);
|
||||||
|
|
||||||
final ElementParams elementParams = new ElementParams();
|
final ElementParams elementParams = new ElementParams();
|
||||||
final int elementName = a.getInt(
|
final int elementName = a.getInt(
|
||||||
R.styleable.KeyboardSet_Element_elementName, 0);
|
R.styleable.KeyboardLayoutSet_Element_elementName, 0);
|
||||||
elementParams.mKeyboardXmlId = a.getResourceId(
|
elementParams.mKeyboardXmlId = a.getResourceId(
|
||||||
R.styleable.KeyboardSet_Element_elementKeyboard, 0);
|
R.styleable.KeyboardLayoutSet_Element_elementKeyboard, 0);
|
||||||
elementParams.mProximityCharsCorrectionEnabled = a.getBoolean(
|
elementParams.mProximityCharsCorrectionEnabled = a.getBoolean(
|
||||||
R.styleable.KeyboardSet_Element_enableProximityCharsCorrection, false);
|
R.styleable.KeyboardLayoutSet_Element_enableProximityCharsCorrection,
|
||||||
mParams.mKeyboardSetElementIdToParamsMap.put(elementName, elementParams);
|
false);
|
||||||
|
mParams.mKeyboardLayoutSetElementIdToParamsMap.put(elementName, elementParams);
|
||||||
} finally {
|
} finally {
|
||||||
a.recycle();
|
a.recycle();
|
||||||
}
|
}
|
|
@ -27,7 +27,7 @@ import android.view.View;
|
||||||
import android.view.inputmethod.EditorInfo;
|
import android.view.inputmethod.EditorInfo;
|
||||||
|
|
||||||
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
|
||||||
import com.android.inputmethod.keyboard.KeyboardSet.KeyboardSetException;
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
|
||||||
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
|
import com.android.inputmethod.keyboard.PointerTracker.TimerProxy;
|
||||||
import com.android.inputmethod.keyboard.internal.KeyboardState;
|
import com.android.inputmethod.keyboard.internal.KeyboardState;
|
||||||
import com.android.inputmethod.latin.DebugSettings;
|
import com.android.inputmethod.latin.DebugSettings;
|
||||||
|
@ -76,7 +76,7 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
|
|
||||||
private KeyboardState mState;
|
private KeyboardState mState;
|
||||||
|
|
||||||
private KeyboardSet mKeyboardSet;
|
private KeyboardLayoutSet mKeyboardLayoutSet;
|
||||||
|
|
||||||
/** mIsAutoCorrectionActive indicates that auto corrected word will be input instead of
|
/** mIsAutoCorrectionActive indicates that auto corrected word will be input instead of
|
||||||
* what user actually typed. */
|
* what user actually typed. */
|
||||||
|
@ -129,12 +129,13 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
if (mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
|
if (mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
|
||||||
mKeyboardTheme = keyboardTheme;
|
mKeyboardTheme = keyboardTheme;
|
||||||
mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
|
mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
|
||||||
KeyboardSet.clearKeyboardCache();
|
KeyboardLayoutSet.clearKeyboardCache();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadKeyboard(EditorInfo editorInfo, SettingsValues settingsValues) {
|
public void loadKeyboard(EditorInfo editorInfo, SettingsValues settingsValues) {
|
||||||
final KeyboardSet.Builder builder = new KeyboardSet.Builder(mThemeContext, editorInfo);
|
final KeyboardLayoutSet.Builder builder = new KeyboardLayoutSet.Builder(
|
||||||
|
mThemeContext, editorInfo);
|
||||||
builder.setScreenGeometry(mThemeContext.getResources().getConfiguration().orientation,
|
builder.setScreenGeometry(mThemeContext.getResources().getConfiguration().orientation,
|
||||||
mThemeContext.getResources().getDisplayMetrics().widthPixels);
|
mThemeContext.getResources().getDisplayMetrics().widthPixels);
|
||||||
builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
|
builder.setSubtype(mSubtypeSwitcher.getCurrentSubtype());
|
||||||
|
@ -142,10 +143,10 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
settingsValues.isVoiceKeyEnabled(editorInfo),
|
settingsValues.isVoiceKeyEnabled(editorInfo),
|
||||||
settingsValues.isVoiceKeyOnMain(),
|
settingsValues.isVoiceKeyOnMain(),
|
||||||
settingsValues.isLanguageSwitchKeyEnabled(mThemeContext));
|
settingsValues.isLanguageSwitchKeyEnabled(mThemeContext));
|
||||||
mKeyboardSet = builder.build();
|
mKeyboardLayoutSet = builder.build();
|
||||||
try {
|
try {
|
||||||
mState.onLoadKeyboard(mResources.getString(R.string.layout_switch_back_symbols));
|
mState.onLoadKeyboard(mResources.getString(R.string.layout_switch_back_symbols));
|
||||||
} catch (KeyboardSetException e) {
|
} catch (KeyboardLayoutSetException e) {
|
||||||
Log.w(TAG, "loading keyboard failed: " + e.mKeyboardId, e.getCause());
|
Log.w(TAG, "loading keyboard failed: " + e.mKeyboardId, e.getCause());
|
||||||
LatinImeLogger.logOnException(e.mKeyboardId.toString(), e.getCause());
|
LatinImeLogger.logOnException(e.mKeyboardId.toString(), e.getCause());
|
||||||
return;
|
return;
|
||||||
|
@ -214,43 +215,43 @@ public class KeyboardSwitcher implements KeyboardState.SwitchActions {
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setAlphabetKeyboard() {
|
public void setAlphabetKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setAlphabetManualShiftedKeyboard() {
|
public void setAlphabetManualShiftedKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_MANUAL_SHIFTED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setAlphabetAutomaticShiftedKeyboard() {
|
public void setAlphabetAutomaticShiftedKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_AUTOMATIC_SHIFTED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setAlphabetShiftLockedKeyboard() {
|
public void setAlphabetShiftLockedKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCKED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setAlphabetShiftLockShiftedKeyboard() {
|
public void setAlphabetShiftLockShiftedKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setSymbolsKeyboard() {
|
public void setSymbolsKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
@Override
|
@Override
|
||||||
public void setSymbolsShiftedKeyboard() {
|
public void setSymbolsShiftedKeyboard() {
|
||||||
setKeyboard(mKeyboardSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS_SHIFTED));
|
setKeyboard(mKeyboardLayoutSet.getKeyboard(KeyboardId.ELEMENT_SYMBOLS_SHIFTED));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implements {@link KeyboardState.SwitchActions}.
|
// Implements {@link KeyboardState.SwitchActions}.
|
||||||
|
|
|
@ -318,7 +318,7 @@ public class KeySpecParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static int getResourceId(Resources res, String name, int packageNameResId) {
|
public static int getResourceId(Resources res, String name, int packageNameResId) {
|
||||||
String packageName = res.getResourcePackageName(packageNameResId);
|
String packageName = res.getResourcePackageName(packageNameResId);
|
||||||
int resId = res.getIdentifier(name, null, packageName);
|
int resId = res.getIdentifier(name, null, packageName);
|
||||||
if (resId == 0) {
|
if (resId == 0) {
|
||||||
|
|
|
@ -114,18 +114,17 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
@SuppressWarnings("dep-ann")
|
@SuppressWarnings("dep-ann")
|
||||||
public static final String IME_OPTION_FORCE_ASCII = "forceAscii";
|
public static final String IME_OPTION_FORCE_ASCII = "forceAscii";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The subtype extra value used to indicate that the subtype keyboard layout set name.
|
||||||
|
*/
|
||||||
|
public static final String SUBTYPE_EXTRA_VALUE_KEYBOARD_LAYOUT_SET = "KeyboardLayoutSet";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The subtype extra value used to indicate that the subtype keyboard layout is capable for
|
* The subtype extra value used to indicate that the subtype keyboard layout is capable for
|
||||||
* typing ASCII characters.
|
* typing ASCII characters.
|
||||||
*/
|
*/
|
||||||
public static final String SUBTYPE_EXTRA_VALUE_ASCII_CAPABLE = "AsciiCapable";
|
public static final String SUBTYPE_EXTRA_VALUE_ASCII_CAPABLE = "AsciiCapable";
|
||||||
|
|
||||||
/**
|
|
||||||
* The subtype extra value used to indicate that the subtype keyboard layout should be loaded
|
|
||||||
* from the specified locale.
|
|
||||||
*/
|
|
||||||
public static final String SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE = "KeyboardLocale";
|
|
||||||
|
|
||||||
private static final int EXTENDED_TOUCHABLE_REGION_HEIGHT = 100;
|
private static final int EXTENDED_TOUCHABLE_REGION_HEIGHT = 100;
|
||||||
|
|
||||||
// How many continuous deletes at which to start deleting at a higher speed.
|
// How many continuous deletes at which to start deleting at a higher speed.
|
||||||
|
|
|
@ -22,6 +22,7 @@ import android.view.inputmethod.EditorInfo;
|
||||||
import com.android.inputmethod.keyboard.Keyboard;
|
import com.android.inputmethod.keyboard.Keyboard;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class StringUtils {
|
public class StringUtils {
|
||||||
private StringUtils() {
|
private StringUtils() {
|
||||||
|
@ -149,4 +150,20 @@ public class StringUtils {
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String toTitleCase(String s, Locale locale) {
|
||||||
|
if (s.length() <= 1) {
|
||||||
|
// TODO: is this really correct? Shouldn't this be s.toUpperCase()?
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
// TODO: fix the bugs below
|
||||||
|
// - This does not work for Greek, because it returns upper case instead of title case.
|
||||||
|
// - It does not work for Serbian, because it fails to account for the "lj" character,
|
||||||
|
// which should be "Lj" in title case and "LJ" in upper case.
|
||||||
|
// - It does not work for Dutch, because it fails to account for the "ij" digraph, which
|
||||||
|
// are two different characters but both should be capitalized as "IJ" as if they were
|
||||||
|
// a single letter.
|
||||||
|
// - It also does not work with unicode surrogate code points.
|
||||||
|
return s.toUpperCase(locale).charAt(0) + s.substring(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ package com.android.inputmethod.latin;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
@ -69,10 +69,10 @@ public class SubtypeLocale {
|
||||||
}
|
}
|
||||||
final String value = lookupExceptionalLocale(key);
|
final String value = lookupExceptionalLocale(key);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
return toTitleCase(locale.getDisplayName(locale), locale);
|
return StringUtils.toTitleCase(locale.getDisplayName(locale), locale);
|
||||||
}
|
}
|
||||||
if (value.indexOf("%s") >= 0) {
|
if (value.indexOf("%s") >= 0) {
|
||||||
final String languageName = toTitleCase(locale.getDisplayLanguage(locale), locale);
|
final String languageName = StringUtils.toTitleCase(locale.getDisplayLanguage(locale), locale);
|
||||||
return String.format(value, languageName);
|
return String.format(value, languageName);
|
||||||
}
|
}
|
||||||
return value;
|
return value;
|
||||||
|
@ -88,7 +88,7 @@ public class SubtypeLocale {
|
||||||
if (NO_LANGUAGE.equals(locale.getLanguage())) {
|
if (NO_LANGUAGE.equals(locale.getLanguage())) {
|
||||||
return lookupExceptionalLocale(locale.getCountry());
|
return lookupExceptionalLocale(locale.getCountry());
|
||||||
} else {
|
} else {
|
||||||
return toTitleCase(locale.getDisplayLanguage(locale), locale);
|
return StringUtils.toTitleCase(locale.getDisplayLanguage(locale), locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,33 +102,7 @@ public class SubtypeLocale {
|
||||||
if (NO_LANGUAGE.equals(locale.getLanguage())) {
|
if (NO_LANGUAGE.equals(locale.getLanguage())) {
|
||||||
return locale.getCountry();
|
return locale.getCountry();
|
||||||
} else {
|
} else {
|
||||||
return toTitleCase(locale.getLanguage(), locale);
|
return StringUtils.toTitleCase(locale.getLanguage(), locale);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String toTitleCase(String s, Locale locale) {
|
|
||||||
if (s.length() <= 1) {
|
|
||||||
// TODO: is this really correct? Shouldn't this be s.toUpperCase()?
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
// TODO: fix the bugs below
|
|
||||||
// - This does not work for Greek, because it returns upper case instead of title case.
|
|
||||||
// - It does not work for Serbian, because it fails to account for the "lj" character,
|
|
||||||
// which should be "Lj" in title case and "LJ" in upper case.
|
|
||||||
// - It does not work for Dutch, because it fails to account for the "ij" digraph, which
|
|
||||||
// are two different characters but both should be capitalized as "IJ" as if they were
|
|
||||||
// a single letter.
|
|
||||||
// - It also does not work with unicode surrogate code points.
|
|
||||||
return s.toUpperCase(locale).charAt(0) + s.substring(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getSubtypeLocaleString(InputMethodSubtype subtype) {
|
|
||||||
final String keyboardLocale = subtype.getExtraValueOf(
|
|
||||||
LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE);
|
|
||||||
return keyboardLocale != null ? keyboardLocale : subtype.getLocale();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Locale getSubtypeLocale(InputMethodSubtype subtype) {
|
|
||||||
return LocaleUtils.constructLocaleFromString(getSubtypeLocaleString(subtype));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
||||||
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
||||||
import com.android.inputmethod.keyboard.KeyboardSwitcher;
|
import com.android.inputmethod.keyboard.KeyboardSwitcher;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -68,6 +69,7 @@ public class SubtypeSwitcher {
|
||||||
private InputMethodInfo mShortcutInputMethodInfo;
|
private InputMethodInfo mShortcutInputMethodInfo;
|
||||||
private InputMethodSubtype mShortcutSubtype;
|
private InputMethodSubtype mShortcutSubtype;
|
||||||
private List<InputMethodSubtype> mAllEnabledSubtypesOfCurrentInputMethod;
|
private List<InputMethodSubtype> mAllEnabledSubtypesOfCurrentInputMethod;
|
||||||
|
private InputMethodSubtype mNoLanguageSubtype;
|
||||||
// Note: This variable is always non-null after {@link #initialize(LatinIME)}.
|
// Note: This variable is always non-null after {@link #initialize(LatinIME)}.
|
||||||
private InputMethodSubtype mCurrentSubtype;
|
private InputMethodSubtype mCurrentSubtype;
|
||||||
private Locale mSystemLocale;
|
private Locale mSystemLocale;
|
||||||
|
@ -104,6 +106,8 @@ public class SubtypeSwitcher {
|
||||||
mInputLocaleStr = null;
|
mInputLocaleStr = null;
|
||||||
mCurrentSubtype = mImm.getCurrentInputMethodSubtype();
|
mCurrentSubtype = mImm.getCurrentInputMethodSubtype();
|
||||||
mAllEnabledSubtypesOfCurrentInputMethod = null;
|
mAllEnabledSubtypesOfCurrentInputMethod = null;
|
||||||
|
mNoLanguageSubtype = SubtypeUtils.findSubtypeByKeyboardLayoutSetLocale(
|
||||||
|
service, SubtypeLocale.LOCALE_NO_LANGUAGE_QWERTY);
|
||||||
|
|
||||||
final NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
|
final NetworkInfo info = mConnectivityManager.getActiveNetworkInfo();
|
||||||
mIsNetworkConnected = (info != null && info.isConnected());
|
mIsNetworkConnected = (info != null && info.isConnected());
|
||||||
|
@ -133,7 +137,7 @@ public class SubtypeSwitcher {
|
||||||
mEnabledLanguagesOfCurrentInputMethod.clear();
|
mEnabledLanguagesOfCurrentInputMethod.clear();
|
||||||
mEnabledKeyboardSubtypesOfCurrentInputMethod.clear();
|
mEnabledKeyboardSubtypesOfCurrentInputMethod.clear();
|
||||||
for (InputMethodSubtype ims : mAllEnabledSubtypesOfCurrentInputMethod) {
|
for (InputMethodSubtype ims : mAllEnabledSubtypesOfCurrentInputMethod) {
|
||||||
final String locale = getSubtypeLocale(ims);
|
final String locale = KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(ims);
|
||||||
final String mode = ims.getMode();
|
final String mode = ims.getMode();
|
||||||
mLocaleSplitter.setString(locale);
|
mLocaleSplitter.setString(locale);
|
||||||
if (mLocaleSplitter.hasNext()) {
|
if (mLocaleSplitter.hasNext()) {
|
||||||
|
@ -162,7 +166,8 @@ public class SubtypeSwitcher {
|
||||||
Log.d(TAG, "Update shortcut IME from : "
|
Log.d(TAG, "Update shortcut IME from : "
|
||||||
+ (mShortcutInputMethodInfo == null
|
+ (mShortcutInputMethodInfo == null
|
||||||
? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
|
? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
|
||||||
+ (mShortcutSubtype == null ? "<null>" : (getSubtypeLocale(mShortcutSubtype)
|
+ (mShortcutSubtype == null ? "<null>" : (
|
||||||
|
KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(mShortcutSubtype)
|
||||||
+ ", " + mShortcutSubtype.getMode())));
|
+ ", " + mShortcutSubtype.getMode())));
|
||||||
}
|
}
|
||||||
// TODO: Update an icon for shortcut IME
|
// TODO: Update an icon for shortcut IME
|
||||||
|
@ -184,20 +189,15 @@ public class SubtypeSwitcher {
|
||||||
Log.d(TAG, "Update shortcut IME to : "
|
Log.d(TAG, "Update shortcut IME to : "
|
||||||
+ (mShortcutInputMethodInfo == null
|
+ (mShortcutInputMethodInfo == null
|
||||||
? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
|
? "<null>" : mShortcutInputMethodInfo.getId()) + ", "
|
||||||
+ (mShortcutSubtype == null ? "<null>" : (getSubtypeLocale(mShortcutSubtype)
|
+ (mShortcutSubtype == null ? "<null>" : (
|
||||||
|
KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(mShortcutSubtype)
|
||||||
+ ", " + mShortcutSubtype.getMode())));
|
+ ", " + mShortcutSubtype.getMode())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getSubtypeLocale(InputMethodSubtype subtype) {
|
|
||||||
final String keyboardLocale = subtype.getExtraValueOf(
|
|
||||||
LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE);
|
|
||||||
return keyboardLocale != null ? keyboardLocale : subtype.getLocale();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function.
|
// Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function.
|
||||||
public void updateSubtype(InputMethodSubtype newSubtype) {
|
public void updateSubtype(InputMethodSubtype newSubtype) {
|
||||||
final String newLocale = getSubtypeLocale(newSubtype);
|
final String newLocale = KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(newSubtype);
|
||||||
final String newMode = newSubtype.getMode();
|
final String newMode = newSubtype.getMode();
|
||||||
final String oldMode = getCurrentSubtypeMode();
|
final String oldMode = getCurrentSubtypeMode();
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
|
@ -301,7 +301,8 @@ public class SubtypeSwitcher {
|
||||||
final String imiPackageName = imi.getPackageName();
|
final String imiPackageName = imi.getPackageName();
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
Log.d(TAG, "Update icons of IME: " + imiPackageName + ","
|
Log.d(TAG, "Update icons of IME: " + imiPackageName + ","
|
||||||
+ getSubtypeLocale(subtype) + "," + subtype.getMode());
|
+ KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(subtype) + ","
|
||||||
|
+ subtype.getMode());
|
||||||
}
|
}
|
||||||
if (subtype != null) {
|
if (subtype != null) {
|
||||||
return pm.getDrawable(imiPackageName, subtype.getIconResId(),
|
return pm.getDrawable(imiPackageName, subtype.getIconResId(),
|
||||||
|
@ -438,4 +439,8 @@ public class SubtypeSwitcher {
|
||||||
public InputMethodSubtype getCurrentSubtype() {
|
public InputMethodSubtype getCurrentSubtype() {
|
||||||
return mCurrentSubtype;
|
return mCurrentSubtype;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public InputMethodSubtype getNoLanguageSubtype() {
|
||||||
|
return mNoLanguageSubtype;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,11 @@ import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
|
||||||
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
|
|
||||||
public class SubtypeUtils {
|
public class SubtypeUtils {
|
||||||
private SubtypeUtils() {
|
private SubtypeUtils() {
|
||||||
|
@ -129,4 +131,18 @@ public class SubtypeUtils {
|
||||||
}
|
}
|
||||||
throw new RuntimeException("Can not find input method id for " + packageName);
|
throw new RuntimeException("Can not find input method id for " + packageName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static InputMethodSubtype findSubtypeByKeyboardLayoutSetLocale(
|
||||||
|
Context context, Locale locale) {
|
||||||
|
final String localeString = locale.toString();
|
||||||
|
final InputMethodInfo imi = SubtypeUtils.getInputMethodInfo(context.getPackageName());
|
||||||
|
final int count = imi.getSubtypeCount();
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
final InputMethodSubtype subtype = imi.getSubtypeAt(i);
|
||||||
|
if (localeString.equals(KeyboardLayoutSet.getKeyboardLayoutSetLocaleString(subtype))) {
|
||||||
|
return subtype;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new RuntimeException("Can not find subtype of locale " + localeString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,6 @@ import com.android.inputmethod.latin.Flag;
|
||||||
import com.android.inputmethod.latin.LocaleUtils;
|
import com.android.inputmethod.latin.LocaleUtils;
|
||||||
import com.android.inputmethod.latin.R;
|
import com.android.inputmethod.latin.R;
|
||||||
import com.android.inputmethod.latin.StringUtils;
|
import com.android.inputmethod.latin.StringUtils;
|
||||||
import com.android.inputmethod.latin.SubtypeLocale;
|
|
||||||
import com.android.inputmethod.latin.SynchronouslyLoadedContactsDictionary;
|
import com.android.inputmethod.latin.SynchronouslyLoadedContactsDictionary;
|
||||||
import com.android.inputmethod.latin.SynchronouslyLoadedUserDictionary;
|
import com.android.inputmethod.latin.SynchronouslyLoadedUserDictionary;
|
||||||
import com.android.inputmethod.latin.WhitelistDictionary;
|
import com.android.inputmethod.latin.WhitelistDictionary;
|
||||||
|
@ -326,7 +325,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService
|
||||||
} else if (CAPITALIZE_FIRST == capitalizeType) {
|
} else if (CAPITALIZE_FIRST == capitalizeType) {
|
||||||
for (int i = 0; i < mSuggestions.size(); ++i) {
|
for (int i = 0; i < mSuggestions.size(); ++i) {
|
||||||
// Likewise
|
// Likewise
|
||||||
mSuggestions.set(i, SubtypeLocale.toTitleCase(
|
mSuggestions.set(i, StringUtils.toTitleCase(
|
||||||
mSuggestions.get(i).toString(), locale));
|
mSuggestions.get(i).toString(), locale));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ import android.view.inputmethod.InputMethodInfo;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.view.inputmethod.InputMethodSubtype;
|
import android.view.inputmethod.InputMethodSubtype;
|
||||||
|
|
||||||
|
import com.android.inputmethod.keyboard.KeyboardLayoutSet;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
@ -58,29 +60,17 @@ public class SubtypeLocaleTests extends AndroidTestCase {
|
||||||
assertTrue("Can not find keyboard subtype", mSubtypesList.size() > 0);
|
assertTrue("Can not find keyboard subtype", mSubtypesList.size() > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Locale getSubtypeLocale(InputMethodSubtype subtype) {
|
|
||||||
return LocaleUtils.constructLocaleFromString(subtype.getLocale());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static Locale getKeyboardLocale(InputMethodSubtype subtype) {
|
|
||||||
final String subtypeLocaleString = subtype.containsExtraValueKey(
|
|
||||||
LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE)
|
|
||||||
? subtype.getExtraValueOf(LatinIME.SUBTYPE_EXTRA_VALUE_KEYBOARD_LOCALE)
|
|
||||||
: subtype.getLocale();
|
|
||||||
return LocaleUtils.constructLocaleFromString(subtypeLocaleString);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void testFullDisplayName() {
|
public void testFullDisplayName() {
|
||||||
final StringBuilder messages = new StringBuilder();
|
final StringBuilder messages = new StringBuilder();
|
||||||
int failedCount = 0;
|
int failedCount = 0;
|
||||||
for (final InputMethodSubtype subtype : mSubtypesList) {
|
for (final InputMethodSubtype subtype : mSubtypesList) {
|
||||||
final Locale locale = getKeyboardLocale(subtype);
|
final Locale locale = KeyboardLayoutSet.getKeyboardLayoutSetLocale(subtype);
|
||||||
if (locale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE)) {
|
if (locale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE)) {
|
||||||
// This is special language name for language agnostic usage.
|
// This is special language name for language agnostic usage.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String keyboardName = SubtypeLocale.getFullDisplayName(locale);
|
final String keyboardName = SubtypeLocale.getFullDisplayName(locale);
|
||||||
final String languageName = SubtypeLocale.toTitleCase(
|
final String languageName = StringUtils.toTitleCase(
|
||||||
locale.getDisplayLanguage(locale), locale);
|
locale.getDisplayLanguage(locale), locale);
|
||||||
if (!keyboardName.contains(languageName)) {
|
if (!keyboardName.contains(languageName)) {
|
||||||
failedCount++;
|
failedCount++;
|
||||||
|
@ -104,13 +94,13 @@ public class SubtypeLocaleTests extends AndroidTestCase {
|
||||||
final StringBuilder messages = new StringBuilder();
|
final StringBuilder messages = new StringBuilder();
|
||||||
int failedCount = 0;
|
int failedCount = 0;
|
||||||
for (final InputMethodSubtype subtype : mSubtypesList) {
|
for (final InputMethodSubtype subtype : mSubtypesList) {
|
||||||
final Locale locale = getKeyboardLocale(subtype);
|
final Locale locale = KeyboardLayoutSet.getKeyboardLayoutSetLocale(subtype);
|
||||||
if (locale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE)) {
|
if (locale.getLanguage().equals(SubtypeLocale.NO_LANGUAGE)) {
|
||||||
// This is special language name for language agnostic usage.
|
// This is special language name for language agnostic usage.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String keyboardName = SubtypeLocale.getMiddleDisplayName(locale);
|
final String keyboardName = SubtypeLocale.getMiddleDisplayName(locale);
|
||||||
final String languageName = SubtypeLocale.toTitleCase(
|
final String languageName = StringUtils.toTitleCase(
|
||||||
locale.getDisplayLanguage(locale), locale);
|
locale.getDisplayLanguage(locale), locale);
|
||||||
if (!keyboardName.equals(languageName)) {
|
if (!keyboardName.equals(languageName)) {
|
||||||
failedCount++;
|
failedCount++;
|
||||||
|
@ -131,13 +121,13 @@ public class SubtypeLocaleTests extends AndroidTestCase {
|
||||||
final StringBuilder messages = new StringBuilder();
|
final StringBuilder messages = new StringBuilder();
|
||||||
int failedCount = 0;
|
int failedCount = 0;
|
||||||
for (final InputMethodSubtype subtype : mSubtypesList) {
|
for (final InputMethodSubtype subtype : mSubtypesList) {
|
||||||
final Locale locale = getKeyboardLocale(subtype);
|
final Locale locale = KeyboardLayoutSet.getKeyboardLayoutSetLocale(subtype);
|
||||||
if (locale.getCountry().equals(SubtypeLocale.QWERTY)) {
|
if (locale.getCountry().equals(SubtypeLocale.QWERTY)) {
|
||||||
// This is special country code for QWERTY keyboard.
|
// This is special country code for QWERTY keyboard.
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String keyboardName = SubtypeLocale.getShortDisplayName(locale);
|
final String keyboardName = SubtypeLocale.getShortDisplayName(locale);
|
||||||
final String languageCode = SubtypeLocale.toTitleCase(locale.getLanguage(), locale);
|
final String languageCode = StringUtils.toTitleCase(locale.getLanguage(), locale);
|
||||||
if (!keyboardName.equals(languageCode)) {
|
if (!keyboardName.equals(languageCode)) {
|
||||||
failedCount++;
|
failedCount++;
|
||||||
messages.append(String.format(
|
messages.append(String.format(
|
||||||
|
|
Loading…
Reference in New Issue