Loading java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ <integer name="config_long_press_space_key_timeout">@integer/config_long_press_key_timeout</integer> <integer name="config_touch_noise_threshold_millis">40</integer> <integer name="config_double_spaces_turn_into_period_timeout">1100</integer> <integer name="config_ignore_special_key_timeout">700</integer> <dimen name="config_touch_noise_threshold_distance">2.0mm</dimen> <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. --> <string name="config_default_keyboard_theme_id" translatable="false">5</string> Loading java/src/com/android/inputmethod/latin/LatinIME.java +62 −25 Original line number Diff line number Diff line Loading @@ -241,11 +241,36 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private static final int MSG_FADEOUT_LANGUAGE_ON_SPACEBAR = 3; private static final int MSG_DISMISS_LANGUAGE_ON_SPACEBAR = 4; private static final int MSG_SPACE_TYPED = 5; private static final int MSG_SET_BIGRAM_PREDICTIONS = 6; private static final int MSG_PENDING_IMS_CALLBACK = 7; private static final int MSG_KEY_TYPED = 6; private static final int MSG_SET_BIGRAM_PREDICTIONS = 7; private static final int MSG_PENDING_IMS_CALLBACK = 8; private final int mDelayBeforeFadeoutLanguageOnSpacebar; private final int mDelayUpdateSuggestions; private final int mDelayUpdateShiftState; private final int mDurationOfFadeoutLanguageOnSpacebar; private final float mFinalFadeoutFactorOfLanguageOnSpacebar; private final long mDoubleSpacesTurnIntoPeriodTimeout; private final long mIgnoreSpecialKeyTimeout; public UIHandler(LatinIME outerInstance) { super(outerInstance); final Resources res = outerInstance.getResources(); mDelayBeforeFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_delay_before_fadeout_language_on_spacebar); mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions); mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state); mDurationOfFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_duration_of_fadeout_language_on_spacebar); mFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger( R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f; mDoubleSpacesTurnIntoPeriodTimeout = res.getInteger( R.integer.config_double_spaces_turn_into_period_timeout); mIgnoreSpecialKeyTimeout = res.getInteger( R.integer.config_ignore_special_key_timeout); } @Override Loading @@ -270,17 +295,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar case MSG_FADEOUT_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( (1.0f + latinIme.mSettingsValues. mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, (1.0f + mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, (LatinKeyboard)msg.obj); } sendMessageDelayed(obtainMessage(MSG_DISMISS_LANGUAGE_ON_SPACEBAR, msg.obj), latinIme.mSettingsValues.mDurationOfFadeoutLanguageOnSpacebar); mDurationOfFadeoutLanguageOnSpacebar); break; case MSG_DISMISS_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, inputView.setSpacebarTextFadeFactor(mFinalFadeoutFactorOfLanguageOnSpacebar, (LatinKeyboard)msg.obj); } break; Loading @@ -289,8 +312,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateSuggestions() { removeMessages(MSG_UPDATE_SUGGESTIONS); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), mDelayUpdateSuggestions); } public void cancelUpdateSuggestions() { Loading @@ -303,8 +325,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateShiftKeyState() { removeMessages(MSG_UPDATE_SHIFT_STATE); sendMessageDelayed(obtainMessage(MSG_UPDATE_SHIFT_STATE), getOuterInstance().mSettingsValues.mDelayUpdateShiftState); sendMessageDelayed(obtainMessage(MSG_UPDATE_SHIFT_STATE), mDelayUpdateShiftState); } public void cancelUpdateShiftState() { Loading @@ -313,8 +334,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateBigramPredictions() { removeMessages(MSG_SET_BIGRAM_PREDICTIONS); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), mDelayUpdateSuggestions); } public void cancelUpdateBigramPredictions() { Loading @@ -334,26 +354,24 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar final LatinKeyboard keyboard = latinIme.mKeyboardSwitcher.getLatinKeyboard(); // The language is always displayed when the delay is negative. final boolean needsToDisplayLanguage = localeChanged || latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar < 0; || mDelayBeforeFadeoutLanguageOnSpacebar < 0; // The language is never displayed when the delay is zero. if (latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar != 0) { if (mDelayBeforeFadeoutLanguageOnSpacebar != 0) { inputView.setSpacebarTextFadeFactor(needsToDisplayLanguage ? 1.0f : latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, : mFinalFadeoutFactorOfLanguageOnSpacebar, keyboard); } // The fadeout animation will start when the delay is positive. if (localeChanged && latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar > 0) { if (localeChanged && mDelayBeforeFadeoutLanguageOnSpacebar > 0) { sendMessageDelayed(obtainMessage(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR, keyboard), latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar); mDelayBeforeFadeoutLanguageOnSpacebar); } } } public void startDoubleSpacesTimer() { removeMessages(MSG_SPACE_TYPED); sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED), getOuterInstance().mSettingsValues.mDoubleSpacesTurnIntoPeriodTimeout); sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED), mDoubleSpacesTurnIntoPeriodTimeout); } public void cancelDoubleSpacesTimer() { Loading @@ -364,6 +382,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar return hasMessages(MSG_SPACE_TYPED); } public void startKeyTypedTimer() { removeMessages(MSG_KEY_TYPED); sendMessageDelayed(obtainMessage(MSG_KEY_TYPED), mIgnoreSpecialKeyTimeout); } public boolean isIgnoringSpecialKey() { return hasMessages(MSG_KEY_TYPED); } // Working variables for the following methods. private boolean mIsOrientationChanging; private boolean mPendingSuccesiveImsCallback; Loading Loading @@ -1246,15 +1273,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // Implementation of {@link KeyboardActionListener}. @Override public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y) { long when = SystemClock.uptimeMillis(); final long when = SystemClock.uptimeMillis(); if (primaryCode != Keyboard.CODE_DELETE || when > mLastKeyTime + QUICK_PRESS) { mDeleteCount = 0; } mLastKeyTime = when; KeyboardSwitcher switcher = mKeyboardSwitcher; final KeyboardSwitcher switcher = mKeyboardSwitcher; final boolean distinctMultiTouch = switcher.hasDistinctMultitouch(); final boolean lastStateOfJustReplacedDoubleSpace = mJustReplacedDoubleSpace; mJustReplacedDoubleSpace = false; boolean shouldStartKeyTypedTimer = true; switch (primaryCode) { case Keyboard.CODE_DELETE: handleBackspace(lastStateOfJustReplacedDoubleSpace); Loading @@ -1278,7 +1306,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } break; case Keyboard.CODE_SETTINGS: if (!mHandler.isIgnoringSpecialKey()) { onSettingsKeyPressed(); } shouldStartKeyTypedTimer = false; break; case Keyboard.CODE_CAPSLOCK: switcher.toggleCapsLock(); Loading @@ -1289,7 +1320,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar playKeyClick(primaryCode); break; case Keyboard.CODE_SHORTCUT: if (!mHandler.isIgnoringSpecialKey()) { mSubtypeSwitcher.switchToShortcutIME(); } shouldStartKeyTypedTimer = false; break; case Keyboard.CODE_TAB: handleTab(); Loading @@ -1314,6 +1348,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar switcher.onKey(primaryCode); // Reset after any single keystroke mEnteredText = null; if (shouldStartKeyTypedTimer) { mHandler.startKeyTypedTimer(); } } @Override Loading java/src/com/android/inputmethod/latin/Settings.java +0 −18 Original line number Diff line number Diff line Loading @@ -102,13 +102,7 @@ public class Settings extends InputMethodSettingsActivity public static class Values { // From resources: public final int mDelayBeforeFadeoutLanguageOnSpacebar; public final int mDelayUpdateSuggestions; public final int mDelayUpdateOldSuggestions; public final int mDelayUpdateShiftState; public final int mDurationOfFadeoutLanguageOnSpacebar; public final float mFinalFadeoutFactorOfLanguageOnSpacebar; public final long mDoubleSpacesTurnIntoPeriodTimeout; public final String mWordSeparators; public final String mMagicSpaceStrippers; public final String mMagicSpaceSwappers; Loading Loading @@ -147,20 +141,8 @@ public class Settings extends InputMethodSettingsActivity } // Get the resources mDelayBeforeFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_delay_before_fadeout_language_on_spacebar); mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions); mDelayUpdateOldSuggestions = res.getInteger( R.integer.config_delay_update_old_suggestions); mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state); mDurationOfFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_duration_of_fadeout_language_on_spacebar); mFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger( R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f; mDoubleSpacesTurnIntoPeriodTimeout = res.getInteger( R.integer.config_double_spaces_turn_into_period_timeout); mMagicSpaceStrippers = res.getString(R.string.magic_space_stripping_symbols); mMagicSpaceSwappers = res.getString(R.string.magic_space_swapping_symbols); String wordSeparators = mMagicSpaceStrippers + mMagicSpaceSwappers Loading Loading
java/res/values/config.xml +1 −0 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ <integer name="config_long_press_space_key_timeout">@integer/config_long_press_key_timeout</integer> <integer name="config_touch_noise_threshold_millis">40</integer> <integer name="config_double_spaces_turn_into_period_timeout">1100</integer> <integer name="config_ignore_special_key_timeout">700</integer> <dimen name="config_touch_noise_threshold_distance">2.0mm</dimen> <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. --> <string name="config_default_keyboard_theme_id" translatable="false">5</string> Loading
java/src/com/android/inputmethod/latin/LatinIME.java +62 −25 Original line number Diff line number Diff line Loading @@ -241,11 +241,36 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar private static final int MSG_FADEOUT_LANGUAGE_ON_SPACEBAR = 3; private static final int MSG_DISMISS_LANGUAGE_ON_SPACEBAR = 4; private static final int MSG_SPACE_TYPED = 5; private static final int MSG_SET_BIGRAM_PREDICTIONS = 6; private static final int MSG_PENDING_IMS_CALLBACK = 7; private static final int MSG_KEY_TYPED = 6; private static final int MSG_SET_BIGRAM_PREDICTIONS = 7; private static final int MSG_PENDING_IMS_CALLBACK = 8; private final int mDelayBeforeFadeoutLanguageOnSpacebar; private final int mDelayUpdateSuggestions; private final int mDelayUpdateShiftState; private final int mDurationOfFadeoutLanguageOnSpacebar; private final float mFinalFadeoutFactorOfLanguageOnSpacebar; private final long mDoubleSpacesTurnIntoPeriodTimeout; private final long mIgnoreSpecialKeyTimeout; public UIHandler(LatinIME outerInstance) { super(outerInstance); final Resources res = outerInstance.getResources(); mDelayBeforeFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_delay_before_fadeout_language_on_spacebar); mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions); mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state); mDurationOfFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_duration_of_fadeout_language_on_spacebar); mFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger( R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f; mDoubleSpacesTurnIntoPeriodTimeout = res.getInteger( R.integer.config_double_spaces_turn_into_period_timeout); mIgnoreSpecialKeyTimeout = res.getInteger( R.integer.config_ignore_special_key_timeout); } @Override Loading @@ -270,17 +295,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar case MSG_FADEOUT_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( (1.0f + latinIme.mSettingsValues. mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, (1.0f + mFinalFadeoutFactorOfLanguageOnSpacebar) / 2, (LatinKeyboard)msg.obj); } sendMessageDelayed(obtainMessage(MSG_DISMISS_LANGUAGE_ON_SPACEBAR, msg.obj), latinIme.mSettingsValues.mDurationOfFadeoutLanguageOnSpacebar); mDurationOfFadeoutLanguageOnSpacebar); break; case MSG_DISMISS_LANGUAGE_ON_SPACEBAR: if (inputView != null) { inputView.setSpacebarTextFadeFactor( latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, inputView.setSpacebarTextFadeFactor(mFinalFadeoutFactorOfLanguageOnSpacebar, (LatinKeyboard)msg.obj); } break; Loading @@ -289,8 +312,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateSuggestions() { removeMessages(MSG_UPDATE_SUGGESTIONS); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_UPDATE_SUGGESTIONS), mDelayUpdateSuggestions); } public void cancelUpdateSuggestions() { Loading @@ -303,8 +325,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateShiftKeyState() { removeMessages(MSG_UPDATE_SHIFT_STATE); sendMessageDelayed(obtainMessage(MSG_UPDATE_SHIFT_STATE), getOuterInstance().mSettingsValues.mDelayUpdateShiftState); sendMessageDelayed(obtainMessage(MSG_UPDATE_SHIFT_STATE), mDelayUpdateShiftState); } public void cancelUpdateShiftState() { Loading @@ -313,8 +334,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar public void postUpdateBigramPredictions() { removeMessages(MSG_SET_BIGRAM_PREDICTIONS); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), getOuterInstance().mSettingsValues.mDelayUpdateSuggestions); sendMessageDelayed(obtainMessage(MSG_SET_BIGRAM_PREDICTIONS), mDelayUpdateSuggestions); } public void cancelUpdateBigramPredictions() { Loading @@ -334,26 +354,24 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar final LatinKeyboard keyboard = latinIme.mKeyboardSwitcher.getLatinKeyboard(); // The language is always displayed when the delay is negative. final boolean needsToDisplayLanguage = localeChanged || latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar < 0; || mDelayBeforeFadeoutLanguageOnSpacebar < 0; // The language is never displayed when the delay is zero. if (latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar != 0) { if (mDelayBeforeFadeoutLanguageOnSpacebar != 0) { inputView.setSpacebarTextFadeFactor(needsToDisplayLanguage ? 1.0f : latinIme.mSettingsValues.mFinalFadeoutFactorOfLanguageOnSpacebar, : mFinalFadeoutFactorOfLanguageOnSpacebar, keyboard); } // The fadeout animation will start when the delay is positive. if (localeChanged && latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar > 0) { if (localeChanged && mDelayBeforeFadeoutLanguageOnSpacebar > 0) { sendMessageDelayed(obtainMessage(MSG_FADEOUT_LANGUAGE_ON_SPACEBAR, keyboard), latinIme.mSettingsValues.mDelayBeforeFadeoutLanguageOnSpacebar); mDelayBeforeFadeoutLanguageOnSpacebar); } } } public void startDoubleSpacesTimer() { removeMessages(MSG_SPACE_TYPED); sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED), getOuterInstance().mSettingsValues.mDoubleSpacesTurnIntoPeriodTimeout); sendMessageDelayed(obtainMessage(MSG_SPACE_TYPED), mDoubleSpacesTurnIntoPeriodTimeout); } public void cancelDoubleSpacesTimer() { Loading @@ -364,6 +382,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar return hasMessages(MSG_SPACE_TYPED); } public void startKeyTypedTimer() { removeMessages(MSG_KEY_TYPED); sendMessageDelayed(obtainMessage(MSG_KEY_TYPED), mIgnoreSpecialKeyTimeout); } public boolean isIgnoringSpecialKey() { return hasMessages(MSG_KEY_TYPED); } // Working variables for the following methods. private boolean mIsOrientationChanging; private boolean mPendingSuccesiveImsCallback; Loading Loading @@ -1246,15 +1273,16 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // Implementation of {@link KeyboardActionListener}. @Override public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y) { long when = SystemClock.uptimeMillis(); final long when = SystemClock.uptimeMillis(); if (primaryCode != Keyboard.CODE_DELETE || when > mLastKeyTime + QUICK_PRESS) { mDeleteCount = 0; } mLastKeyTime = when; KeyboardSwitcher switcher = mKeyboardSwitcher; final KeyboardSwitcher switcher = mKeyboardSwitcher; final boolean distinctMultiTouch = switcher.hasDistinctMultitouch(); final boolean lastStateOfJustReplacedDoubleSpace = mJustReplacedDoubleSpace; mJustReplacedDoubleSpace = false; boolean shouldStartKeyTypedTimer = true; switch (primaryCode) { case Keyboard.CODE_DELETE: handleBackspace(lastStateOfJustReplacedDoubleSpace); Loading @@ -1278,7 +1306,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } break; case Keyboard.CODE_SETTINGS: if (!mHandler.isIgnoringSpecialKey()) { onSettingsKeyPressed(); } shouldStartKeyTypedTimer = false; break; case Keyboard.CODE_CAPSLOCK: switcher.toggleCapsLock(); Loading @@ -1289,7 +1320,10 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar playKeyClick(primaryCode); break; case Keyboard.CODE_SHORTCUT: if (!mHandler.isIgnoringSpecialKey()) { mSubtypeSwitcher.switchToShortcutIME(); } shouldStartKeyTypedTimer = false; break; case Keyboard.CODE_TAB: handleTab(); Loading @@ -1314,6 +1348,9 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar switcher.onKey(primaryCode); // Reset after any single keystroke mEnteredText = null; if (shouldStartKeyTypedTimer) { mHandler.startKeyTypedTimer(); } } @Override Loading
java/src/com/android/inputmethod/latin/Settings.java +0 −18 Original line number Diff line number Diff line Loading @@ -102,13 +102,7 @@ public class Settings extends InputMethodSettingsActivity public static class Values { // From resources: public final int mDelayBeforeFadeoutLanguageOnSpacebar; public final int mDelayUpdateSuggestions; public final int mDelayUpdateOldSuggestions; public final int mDelayUpdateShiftState; public final int mDurationOfFadeoutLanguageOnSpacebar; public final float mFinalFadeoutFactorOfLanguageOnSpacebar; public final long mDoubleSpacesTurnIntoPeriodTimeout; public final String mWordSeparators; public final String mMagicSpaceStrippers; public final String mMagicSpaceSwappers; Loading Loading @@ -147,20 +141,8 @@ public class Settings extends InputMethodSettingsActivity } // Get the resources mDelayBeforeFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_delay_before_fadeout_language_on_spacebar); mDelayUpdateSuggestions = res.getInteger(R.integer.config_delay_update_suggestions); mDelayUpdateOldSuggestions = res.getInteger( R.integer.config_delay_update_old_suggestions); mDelayUpdateShiftState = res.getInteger(R.integer.config_delay_update_shift_state); mDurationOfFadeoutLanguageOnSpacebar = res.getInteger( R.integer.config_duration_of_fadeout_language_on_spacebar); mFinalFadeoutFactorOfLanguageOnSpacebar = res.getInteger( R.integer.config_final_fadeout_percentage_of_language_on_spacebar) / 100.0f; mDoubleSpacesTurnIntoPeriodTimeout = res.getInteger( R.integer.config_double_spaces_turn_into_period_timeout); mMagicSpaceStrippers = res.getString(R.string.magic_space_stripping_symbols); mMagicSpaceSwappers = res.getString(R.string.magic_space_swapping_symbols); String wordSeparators = mMagicSpaceStrippers + mMagicSpaceSwappers Loading