Loading java/src/com/android/inputmethod/latin/LatinIME.java +2 −31 Original line number Diff line number Diff line Loading @@ -1401,7 +1401,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } } else if (SPACE_STATE_SWAP_PUNCTUATION == spaceState) { if (revertSwapPunctuation()) { if (mConnection.revertSwapPunctuation()) { // Likewise return; } Loading Loading @@ -1975,10 +1975,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Only auto-add to dictionary if auto-correct is ON. Otherwise we'll be // adding words in situations where the user or application really didn't // want corrections enabled or learned. if (!(mCurrentSettings.mCorrectionMode == Suggest.CORRECTION_FULL || mCurrentSettings.mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM)) { return null; } if (!mCurrentSettings.isCorrectionOn()) return null; if (mUserHistoryDictionary != null) { final CharSequence prevWord Loading Loading @@ -2075,32 +2072,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mHandler.postUpdateSuggestions(); } private boolean revertSwapPunctuation() { // Here we test whether we indeed have a space and something else before us. This should not // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = mConnection.getTextBeforeCursor(2, 0); // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is able to // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Keyboard.CODE_SPACE != textBeforeCursor.charAt(1))) { // We may only come here if the application is changing the text while we are typing. // This is quite a broken case, but not logically impossible, so we shouldn't crash, // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; } mConnection.deleteSurroundingText(2, 0); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_deleteSurroundingText(2); } mConnection.commitText(" " + textBeforeCursor.subSequence(0, 1), 1); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_revertSwapPunctuation(); } return true; } public boolean isWordSeparator(int code) { return mCurrentSettings.isWordSeparator(code); } Loading java/src/com/android/inputmethod/latin/RichInputConnection.java +26 −0 Original line number Diff line number Diff line Loading @@ -393,4 +393,30 @@ public class RichInputConnection { } return true; } public boolean revertSwapPunctuation() { // Here we test whether we indeed have a space and something else before us. This should not // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is able to // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Keyboard.CODE_SPACE != textBeforeCursor.charAt(1))) { // We may only come here if the application is changing the text while we are typing. // This is quite a broken case, but not logically impossible, so we shouldn't crash, // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; } deleteSurroundingText(2, 0); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_deleteSurroundingText(2); } commitText(" " + textBeforeCursor.subSequence(0, 1), 1); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_revertSwapPunctuation(); } return true; } } java/src/com/android/inputmethod/latin/SettingsValues.java +5 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,11 @@ public class SettingsValues { res.getBoolean(R.bool.config_default_vibration_enabled)); } public boolean isCorrectionOn() { return mCorrectionMode == Suggest.CORRECTION_FULL || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM; } public boolean isSuggestionStripVisibleInOrientation(final int orientation) { return (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_VALUE) || (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_ONLY_PORTRAIT_VALUE Loading Loading
java/src/com/android/inputmethod/latin/LatinIME.java +2 −31 Original line number Diff line number Diff line Loading @@ -1401,7 +1401,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen return; } } else if (SPACE_STATE_SWAP_PUNCTUATION == spaceState) { if (revertSwapPunctuation()) { if (mConnection.revertSwapPunctuation()) { // Likewise return; } Loading Loading @@ -1975,10 +1975,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen // Only auto-add to dictionary if auto-correct is ON. Otherwise we'll be // adding words in situations where the user or application really didn't // want corrections enabled or learned. if (!(mCurrentSettings.mCorrectionMode == Suggest.CORRECTION_FULL || mCurrentSettings.mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM)) { return null; } if (!mCurrentSettings.isCorrectionOn()) return null; if (mUserHistoryDictionary != null) { final CharSequence prevWord Loading Loading @@ -2075,32 +2072,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen mHandler.postUpdateSuggestions(); } private boolean revertSwapPunctuation() { // Here we test whether we indeed have a space and something else before us. This should not // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = mConnection.getTextBeforeCursor(2, 0); // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is able to // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Keyboard.CODE_SPACE != textBeforeCursor.charAt(1))) { // We may only come here if the application is changing the text while we are typing. // This is quite a broken case, but not logically impossible, so we shouldn't crash, // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; } mConnection.deleteSurroundingText(2, 0); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_deleteSurroundingText(2); } mConnection.commitText(" " + textBeforeCursor.subSequence(0, 1), 1); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_revertSwapPunctuation(); } return true; } public boolean isWordSeparator(int code) { return mCurrentSettings.isWordSeparator(code); } Loading
java/src/com/android/inputmethod/latin/RichInputConnection.java +26 −0 Original line number Diff line number Diff line Loading @@ -393,4 +393,30 @@ public class RichInputConnection { } return true; } public boolean revertSwapPunctuation() { // Here we test whether we indeed have a space and something else before us. This should not // be needed, but it's there just in case something went wrong. final CharSequence textBeforeCursor = getTextBeforeCursor(2, 0); // NOTE: This does not work with surrogate pairs. Hopefully when the keyboard is able to // enter surrogate pairs this code will have been removed. if (TextUtils.isEmpty(textBeforeCursor) || (Keyboard.CODE_SPACE != textBeforeCursor.charAt(1))) { // We may only come here if the application is changing the text while we are typing. // This is quite a broken case, but not logically impossible, so we shouldn't crash, // but some debugging log may be in order. Log.d(TAG, "Tried to revert a swap of punctuation but we didn't " + "find a space just before the cursor."); return false; } deleteSurroundingText(2, 0); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_deleteSurroundingText(2); } commitText(" " + textBeforeCursor.subSequence(0, 1), 1); if (ProductionFlag.IS_EXPERIMENTAL) { ResearchLogger.latinIME_revertSwapPunctuation(); } return true; } }
java/src/com/android/inputmethod/latin/SettingsValues.java +5 −0 Original line number Diff line number Diff line Loading @@ -226,6 +226,11 @@ public class SettingsValues { res.getBoolean(R.bool.config_default_vibration_enabled)); } public boolean isCorrectionOn() { return mCorrectionMode == Suggest.CORRECTION_FULL || mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM; } public boolean isSuggestionStripVisibleInOrientation(final int orientation) { return (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_VALUE) || (mSuggestionVisibility == SUGGESTION_VISIBILITY_SHOW_ONLY_PORTRAIT_VALUE Loading