aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/xml-da-xlarge/kbd_qwerty.xml35
-rw-r--r--java/res/xml-nb-xlarge/kbd_qwerty.xml35
-rw-r--r--java/res/xml-ru-xlarge/kbd_qwerty.xml155
-rw-r--r--java/res/xml-sr-xlarge/kbd_qwerty.xml166
-rw-r--r--java/res/xml-sr/kbd_qwerty.xml4
-rw-r--r--java/res/xml-sv-xlarge/kbd_qwerty.xml37
-rw-r--r--java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml134
-rw-r--r--java/src/com/android/inputmethod/latin/KeyboardSwitcher.java23
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java17
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeSwitcher.java9
10 files changed, 593 insertions, 22 deletions
diff --git a/java/res/xml-da-xlarge/kbd_qwerty.xml b/java/res/xml-da-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..3170b0871
--- /dev/null
+++ b/java/res/xml-da-xlarge/kbd_qwerty.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<!--
+ Danish Keyboard Layout
+
+ Just a copy of the Norwegian layout, with æ/ø switched.
+-->
+
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:horizontalGap="@dimen/key_horizontal_gap"
+ latin:verticalGap="@dimen/key_bottom_gap"
+ latin:keyHeight="@dimen/key_height"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+</Keyboard>
diff --git a/java/res/xml-nb-xlarge/kbd_qwerty.xml b/java/res/xml-nb-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..b137b5875
--- /dev/null
+++ b/java/res/xml-nb-xlarge/kbd_qwerty.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<!--
+ Norwegian Keyboard Layout
+
+ Just a copy of the Swedish layout, with ä/æ and ö/ø switched.
+-->
+
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:horizontalGap="@dimen/key_horizontal_gap"
+ latin:verticalGap="@dimen/key_bottom_gap"
+ latin:keyHeight="@dimen/key_height"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+</Keyboard>
diff --git a/java/res/xml-ru-xlarge/kbd_qwerty.xml b/java/res/xml-ru-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..fef042100
--- /dev/null
+++ b/java/res/xml-ru-xlarge/kbd_qwerty.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyWidth="9.091%p"
+ latin:horizontalGap="@dimen/key_horizontal_gap"
+ latin:verticalGap="@dimen/key_bottom_gap"
+ latin:keyHeight="@dimen/key_height"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_key_styles" />
+ <!-- This row is intentionally not marked as a top row -->
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="tabKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="й"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="1" />
+ <Key
+ latin:keyLabel="ц"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="2" />
+ <Key
+ latin:keyLabel="у"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="3" />
+ <Key
+ latin:keyLabel="к"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="4" />
+ <Key
+ latin:keyLabel="е"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_cyrillic_e" />
+ <Key
+ latin:keyLabel="н"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="6" />
+ <Key
+ latin:keyLabel="г"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="7" />
+ <Key
+ latin:keyLabel="ш"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="8" />
+ <Key
+ latin:keyLabel="щ"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="9" />
+ <Key
+ latin:keyLabel="з"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="0" />
+ <Key
+ latin:keyLabel="х" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="ф" />
+ <Key
+ latin:keyLabel="ы" />
+ <Key
+ latin:keyLabel="в" />
+ <Key
+ latin:keyLabel="а" />
+ <Key
+ latin:keyLabel="п" />
+ <Key
+ latin:keyLabel="р" />
+ <Key
+ latin:keyLabel="о" />
+ <Key
+ latin:keyLabel="л" />
+ <Key
+ latin:keyLabel="д" />
+ <Key
+ latin:keyLabel="ж" />
+ <Key
+ latin:keyLabel="э" />
+ <Key
+ latin:keyStyle="returnKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="8.042%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="15.192%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="я" />
+ <Key
+ latin:keyLabel="ч" />
+ <Key
+ latin:keyLabel="с" />
+ <Key
+ latin:keyLabel="м" />
+ <Key
+ latin:keyLabel="и" />
+ <Key
+ latin:keyLabel="т" />
+ <Key
+ latin:keyLabel="ь"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_cyrillic_soft_sign" />
+ <Key
+ latin:keyLabel="б" />
+ <Key
+ latin:keyLabel="ю" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="12.530%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</Keyboard>
diff --git a/java/res/xml-sr-xlarge/kbd_qwerty.xml b/java/res/xml-sr-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..297d72619
--- /dev/null
+++ b/java/res/xml-sr-xlarge/kbd_qwerty.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<!-- Serbian keyboard layout, based on the X11 layout for Serbian -->
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:keyWidth="9.09%p"
+ latin:horizontalGap="@dimen/key_horizontal_gap"
+ latin:verticalGap="@dimen/key_bottom_gap"
+ latin:keyHeight="@dimen/key_height"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_key_styles" />
+ <!-- This row is intentionally not marked as a top row -->
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="tabKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="љ"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="1" />
+ <Key
+ latin:keyLabel="њ"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="2" />
+ <Key
+ latin:keyLabel="е"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="3" />
+ <Key
+ latin:keyLabel="р"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="4" />
+ <Key
+ latin:keyLabel="т"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="5" />
+ <Key
+ latin:keyLabel="з"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="6" />
+ <Key
+ latin:keyLabel="у"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="7" />
+ <Key
+ latin:keyLabel="и"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="8" />
+ <Key
+ latin:keyLabel="о"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="9" />
+ <Key
+ latin:keyLabel="п"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="0" />
+ <Key
+ latin:keyLabel="ш" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="а" />
+ <Key
+ latin:keyLabel="с" />
+ <Key
+ latin:keyLabel="д" />
+ <Key
+ latin:keyLabel="ф" />
+ <Key
+ latin:keyLabel="г" />
+ <Key
+ latin:keyLabel="х" />
+ <Key
+ latin:keyLabel="ј" />
+ <Key
+ latin:keyLabel="к" />
+ <Key
+ latin:keyLabel="л" />
+ <Key
+ latin:keyLabel="ч" />
+ <Key
+ latin:keyLabel="ћ" />
+ <Key
+ latin:keyStyle="returnKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="12.400%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="ђ" />
+ <Key
+ latin:keyLabel="ж" />
+ <Key
+ latin:keyLabel="џ" />
+ <Key
+ latin:keyLabel="ц" />
+ <Key
+ latin:keyLabel="в" />
+ <Key
+ latin:keyLabel="б" />
+ <Key
+ latin:keyLabel="н" />
+ <Key
+ latin:keyLabel="м" />
+ <Key
+ latin:keyLabel=","
+ latin:manualTemporaryUpperCaseCode="33"
+ latin:keyHintIcon="@drawable/key_hint_exclamation_holo"
+ latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_exclamation_large_holo"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="!" />
+ <Key
+ latin:keyLabel="."
+ latin:manualTemporaryUpperCaseCode="63"
+ latin:keyHintIcon="@drawable/key_hint_question_holo"
+ latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_question_large_holo"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="\?" />
+ <Key
+ latin:keyStyle="shiftKeyStyle"
+ latin:keyWidth="12.400%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</Keyboard>
diff --git a/java/res/xml-sr/kbd_qwerty.xml b/java/res/xml-sr/kbd_qwerty.xml
index 77e764788..279b0409d 100644
--- a/java/res/xml-sr/kbd_qwerty.xml
+++ b/java/res/xml-sr/kbd_qwerty.xml
@@ -86,7 +86,9 @@
latin:keyLabel="ш"
latin:keyEdgeFlags="right" />
</Row>
- <Row>
+ <Row
+ latin:keyWidth="8.333%p"
+ >
<Key
latin:keyLabel="а"
latin:keyEdgeFlags="left" />
diff --git a/java/res/xml-sv-xlarge/kbd_qwerty.xml b/java/res/xml-sv-xlarge/kbd_qwerty.xml
new file mode 100644
index 000000000..80d94538f
--- /dev/null
+++ b/java/res/xml-sv-xlarge/kbd_qwerty.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<!--
+ Swedish Keyboard Layout
+
+ Key positioning: Svensk standard SS 66 22 41
+ Foreign letters: Svenska skrivregler (2:a uppl.) §302
+ Local additions: ۧ
+-->
+
+<Keyboard
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+ latin:horizontalGap="@dimen/key_horizontal_gap"
+ latin:verticalGap="@dimen/key_bottom_gap"
+ latin:keyHeight="@dimen/key_height"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_rows_scandinavia" />
+</Keyboard>
diff --git a/java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml b/java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml
new file mode 100644
index 000000000..c56d4f497
--- /dev/null
+++ b/java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2010, 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.
+*/
+-->
+
+<merge
+ xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+ <include
+ latin:keyboardLayout="@xml/kbd_key_styles" />
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="tabKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="q"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_q" />
+ <Key
+ latin:keyLabel="w"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_w" />
+ <Key
+ latin:keyLabel="e"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_e" />
+ <Key
+ latin:keyLabel="r"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_r" />
+ <Key
+ latin:keyLabel="t"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_t" />
+ <Key
+ latin:keyLabel="y"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_y" />
+ <Key
+ latin:keyLabel="u"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_u" />
+ <Key
+ latin:keyLabel="i"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_i" />
+ <Key
+ latin:keyLabel="o"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_o" />
+ <Key
+ latin:keyLabel="p"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_p" />
+ <Key
+ latin:keyLabel="å" />
+ <Key
+ latin:keyStyle="deleteKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <Row
+ latin:keyWidth="7.520%p"
+ >
+ <Key
+ latin:keyStyle="toSymbolKeyStyle"
+ latin:keyLabelOption="alignLeft"
+ latin:keyWidth="7.949%p"
+ latin:keyEdgeFlags="left" />
+ <Key
+ latin:keyLabel="a"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_a" />
+ <Key
+ latin:keyLabel="s"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_s" />
+ <Key
+ latin:keyLabel="d"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_d" />
+ <Key
+ latin:keyLabel="f" />
+ <Key
+ latin:keyLabel="g"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_g" />
+ <Key
+ latin:keyLabel="h" />
+ <Key
+ latin:keyLabel="j" />
+ <Key
+ latin:keyLabel="k" />
+ <Key
+ latin:keyLabel="l"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_l" />
+ <Key
+ latin:keyLabel="@string/keylabel_for_scandinavia_row2_10"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_scandinavia_row2_10" />
+ <Key
+ latin:keyLabel="@string/keylabel_for_scandinavia_row2_11"
+ latin:popupKeyboard="@xml/kbd_popup_template"
+ latin:popupCharacters="@string/alternates_for_scandinavia_row2_11" />
+ <Key
+ latin:keyStyle="returnKeyStyle"
+ latin:keyWidth="9.331%p"
+ latin:keyEdgeFlags="right" />
+ </Row>
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_row3" />
+ <include
+ latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+</merge>
diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
index af1575f06..00b6f0a43 100644
--- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java
@@ -296,7 +296,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
final SoftReference<LatinKeyboard> ref = mKeyboardCache.get(id);
LatinKeyboard keyboard = (ref == null) ? null : ref.get();
if (keyboard == null) {
- final Resources res = mInputMethodService.getResources();
final Locale savedLocale = mSubtypeSwitcher.changeSystemLocale(
mSubtypeSwitcher.getInputLocale());
@@ -668,11 +667,12 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
return mInputView;
}
- public void loadKeyboardView() {
- loadKeyboardViewInternal(mLayoutId, true);
+ public LatinKeyboardView onCreateInputView() {
+ createInputViewInternal(mLayoutId, true);
+ return mInputView;
}
- private void loadKeyboardViewInternal(int newLayout, boolean forceReset) {
+ private void createInputViewInternal(int newLayout, boolean forceReset) {
if (mLayoutId != newLayout || mInputView == null || forceReset) {
if (mInputView != null) {
mInputView.closing();
@@ -701,24 +701,31 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
mInputView.setOnKeyboardActionListener(mInputMethodService);
mLayoutId = newLayout;
}
- // TODO: Not to post if this function was called from loadKeyboardView
+ }
+
+ private void postSetInputView() {
mInputMethodService.mHandler.post(new Runnable() {
+ @Override
public void run() {
if (mInputView != null) {
mInputMethodService.setInputView(mInputView);
}
mInputMethodService.updateInputViewShown();
- }});
+ }
+ });
}
+ @Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (PREF_KEYBOARD_LAYOUT.equals(key)) {
final int layoutId = Integer.valueOf(
sharedPreferences.getString(key, DEFAULT_LAYOUT_ID));
- loadKeyboardViewInternal(layoutId, false);
+ createInputViewInternal(layoutId, false);
+ postSetInputView();
} else if (LatinIMESettings.PREF_SETTINGS_KEY.equals(key)) {
mHasSettingsKey = getSettingsKeyMode(sharedPreferences, mInputMethodService);
- loadKeyboardViewInternal(mLayoutId, true);
+ createInputViewInternal(mLayoutId, true);
+ postSetInputView();
}
}
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 4ef19e831..36c77efaf 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -464,7 +464,8 @@ public class LatinIME extends InputMethodService
@Override
public void onConfigurationChanged(Configuration conf) {
mSubtypeSwitcher.onConfigurationChanged(conf);
- onKeyboardLanguageChanged();
+ if (mSubtypeSwitcher.isKeyboardMode())
+ onKeyboardLanguageChanged();
updateAutoTextEnabled();
// If orientation changed while predicting, commit the change
@@ -489,8 +490,7 @@ public class LatinIME extends InputMethodService
@Override
public View onCreateInputView() {
- mKeyboardSwitcher.loadKeyboardView();
- return mKeyboardSwitcher.getInputView();
+ return mKeyboardSwitcher.onCreateInputView();
}
@Override
@@ -524,7 +524,7 @@ public class LatinIME extends InputMethodService
return;
}
- SubtypeSwitcher.getInstance().updateParametersOnStartInputView();
+ mSubtypeSwitcher.updateParametersOnStartInputView();
if (mRefreshKeyboardRequired) {
mRefreshKeyboardRequired = false;
@@ -614,9 +614,12 @@ public class LatinIME extends InputMethodService
mJustAddedAutoSpace = false;
loadSettings(attribute);
- switcher.loadKeyboard(mode, attribute.imeOptions, mVoiceConnector.isVoiceButtonEnabled(),
- mVoiceConnector.isVoiceButtonOnPrimary());
- switcher.updateShiftState();
+ if (mSubtypeSwitcher.isKeyboardMode()) {
+ switcher.loadKeyboard(mode, attribute.imeOptions,
+ mVoiceConnector.isVoiceButtonEnabled(),
+ mVoiceConnector.isVoiceButtonOnPrimary());
+ switcher.updateShiftState();
+ }
setCandidatesViewShownInternal(isCandidateStripVisible(),
false /* needsInputViewShown */ );
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 0e739e2f5..103443e6d 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -39,7 +39,7 @@ public class SubtypeSwitcher {
// We may or may not draw the current language on space bar regardless of this flag.
public static final boolean USE_SPACEBAR_LANGUAGE_SWITCHER = false;
private static final boolean DBG = false;
- private static final String TAG = "InputMethodSubtypeSwitcher";
+ private static final String TAG = "SubtypeSwitcher";
private static final char LOCALE_SEPARATER = '_';
private static final String KEYBOARD_MODE = "keyboard";
@@ -153,9 +153,9 @@ public class SubtypeSwitcher {
final String newLocale;
final String newMode;
if (newSubtype == null) {
- // Normally, newSubtype shouldn't be null. But just in case if newSubtype was null,
+ // Normally, newSubtype shouldn't be null. But just in case newSubtype was null,
// fallback to the default locale and mode.
- Log.e(TAG, "Couldn't get the current subtype.");
+ Log.w(TAG, "Couldn't get the current subtype.");
newLocale = "en_US";
newMode =KEYBOARD_MODE;
} else {
@@ -345,14 +345,11 @@ public class SubtypeSwitcher {
public boolean setVoiceInput(VoiceInput vi) {
if (mVoiceInput == null && vi != null) {
- // TODO: Remove requirements to construct KeyboardSwitcher
- // when IME was enabled with Voice mode
mVoiceInput = vi;
if (isVoiceMode()) {
if (DBG) {
Log.d(TAG, "Set and call voice input.");
}
- mService.onKeyboardLanguageChanged();
mService.onKey(LatinKeyboardView.KEYCODE_VOICE, null, 0, 0);
return true;
}