diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/xml-da-xlarge/kbd_qwerty.xml | 35 | ||||
-rw-r--r-- | java/res/xml-nb-xlarge/kbd_qwerty.xml | 35 | ||||
-rw-r--r-- | java/res/xml-ru-xlarge/kbd_qwerty.xml | 155 | ||||
-rw-r--r-- | java/res/xml-sr-xlarge/kbd_qwerty.xml | 166 | ||||
-rw-r--r-- | java/res/xml-sr/kbd_qwerty.xml | 4 | ||||
-rw-r--r-- | java/res/xml-sv-xlarge/kbd_qwerty.xml | 37 | ||||
-rw-r--r-- | java/res/xml-xlarge/kbd_qwerty_rows_scandinavia.xml | 134 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/KeyboardSwitcher.java | 23 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 17 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SubtypeSwitcher.java | 9 |
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; } |