summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-11-13 10:59:03 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-11-13 10:59:03 +0000
commit5f60445d2cd9add4c04b1c329981d73889a5ba20 (patch)
tree95654b964e5d9a10773acb4bd32b3214d936ee9a
parentab1856046ffca7187d7d806a454729d9fb1bbecc (diff)
minor bugfix in the translator keyboard
-rw-r--r--src/ui/android/src/org/grammaticalframework/ui/android/TranslatorInputMethodService.java29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/ui/android/src/org/grammaticalframework/ui/android/TranslatorInputMethodService.java b/src/ui/android/src/org/grammaticalframework/ui/android/TranslatorInputMethodService.java
index 29c52c44a..d961b228a 100644
--- a/src/ui/android/src/org/grammaticalframework/ui/android/TranslatorInputMethodService.java
+++ b/src/ui/android/src/org/grammaticalframework/ui/android/TranslatorInputMethodService.java
@@ -67,6 +67,7 @@ public class TranslatorInputMethodService extends InputMethodService
}
private int mModeId;
+ private EditorInfo mAttribute;
private static TranslatorInputMethodService mInstance;
static TranslatorInputMethodService getInstance() {
@@ -98,6 +99,7 @@ public class TranslatorInputMethodService extends InputMethodService
!attribute.extras.getBoolean("show_language_toggle", true)) {
mModeId = R.string.internalKeyboardMode;
}
+ mAttribute = attribute;
mLanguageKeyboard = new TranslatorKeyboard(this, res, mModeId);
mSymbolsKeyboard = new TranslatorKeyboard(this, R.xml.symbols, mModeId);
mSymbolsShiftedKeyboard = new TranslatorKeyboard(this, R.xml.symbols_shift, mModeId);
@@ -169,7 +171,7 @@ public class TranslatorInputMethodService extends InputMethodService
mActionId = attribute.imeOptions & EditorInfo.IME_MASK_ACTION;
mCurKeyboard.setImeOptions(getResources(), attribute.imeOptions);
-
+
mInstance = this;
}
@@ -191,8 +193,9 @@ public class TranslatorInputMethodService extends InputMethodService
if (mInputView != null) {
mInputView.closing();
}
-
+
mInstance = null;
+ mAttribute = null;
}
@Override
@@ -504,11 +507,10 @@ public class TranslatorInputMethodService extends InputMethodService
}
void handleChangeSourceLanguage(Language newSource) {
- mLanguageKeyboard =
- new TranslatorKeyboard(this, newSource.getKeyboardResource(), mModeId);
+ updateLanguageKeyboard(newSource);
mSymbolsKeyboard.updateLanguageKeyLabels();
mSymbolsShiftedKeyboard.updateLanguageKeyLabels();
- mInputView.setKeyboard(mLanguageKeyboard);
+ mInputView.setKeyboard(mCurKeyboard);
}
void handleChangeTargetLanguage(Language newTarget) {
@@ -520,11 +522,22 @@ public class TranslatorInputMethodService extends InputMethodService
void handleSwitchLanguages() {
Language newSource = mTranslator.getSourceLanguage();
- mLanguageKeyboard =
- new TranslatorKeyboard(this, newSource.getKeyboardResource(), mModeId);
- mInputView.setKeyboard(mLanguageKeyboard);
+ updateLanguageKeyboard(newSource);
+ mSymbolsKeyboard.updateLanguageKeyLabels();
+ mSymbolsShiftedKeyboard.updateLanguageKeyLabels();
+ mInputView.setKeyboard(mCurKeyboard);
}
+ private void updateLanguageKeyboard(Language language) {
+ TranslatorKeyboard keyboard =
+ new TranslatorKeyboard(this, language.getKeyboardResource(), mModeId);
+ keyboard.setImeOptions(getResources(), mAttribute.imeOptions);
+ if (mCurKeyboard == mLanguageKeyboard) {
+ mCurKeyboard = keyboard;
+ }
+ mLanguageKeyboard = keyboard;
+ }
+
private void checkToggleCapsLock() {
long now = System.currentTimeMillis();
if (mLastShiftTime + 800 > now) {