Merge "Fix voice key enable status has not been reflected to keyboard id" into honeycomb
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index 25ef847..42af8a8 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -174,12 +174,6 @@
private void loadKeyboardInternal(int mode, int imeOptions, boolean voiceButtonEnabled,
boolean voiceButtonOnPrimary, boolean isSymbols) {
if (mInputView == null) return;
- final Keyboard oldKeyboard = mInputView.getKeyboard();
- final KeyboardId id = getKeyboardId(mode, imeOptions, isSymbols);
- if (oldKeyboard != null && oldKeyboard.mId.equals(id))
- return;
-
- mInputView.setPreviewEnabled(mInputMethodService.getPopupOn());
mMode = mode;
mImeOptions = imeOptions;
@@ -188,9 +182,15 @@
mIsSymbols = isSymbols;
// Update the settings key state because number of enabled IMEs could have been changed
mHasSettingsKey = getSettingsKeyMode(mPrefs, mInputMethodService);
- makeSymbolsKeyboardIds();
+ final KeyboardId id = getKeyboardId(mode, imeOptions, isSymbols);
+ final Keyboard oldKeyboard = mInputView.getKeyboard();
+ if (oldKeyboard != null && oldKeyboard.mId.equals(id))
+ return;
+
+ makeSymbolsKeyboardIds();
mCurrentId = id;
+ mInputView.setPreviewEnabled(mInputMethodService.getPopupOn());
mInputView.setKeyboard(getKeyboard(id));
}