Skip to content
Snippets Groups Projects
Commit b8fa1008 authored by Amith Yamasani's avatar Amith Yamasani
Browse files

Check recorrection on focusing into a text field that has text already.

Bug: 3004827
Change-Id: I00e9d925fcf17fa9f7a9aefe6572a648e023be11
parent 6e5a3986
No related branches found
No related tags found
No related merge requests found
...@@ -676,10 +676,33 @@ public class LatinIME extends InputMethodService ...@@ -676,10 +676,33 @@ public class LatinIME extends InputMethodService
inputView.setPreviewEnabled(mPopupOn); inputView.setPreviewEnabled(mPopupOn);
inputView.setProximityCorrectionEnabled(true); inputView.setProximityCorrectionEnabled(true);
mPredictionOn = mPredictionOn && (mCorrectionMode > 0 || mShowSuggestions); mPredictionOn = mPredictionOn && (mCorrectionMode > 0 || mShowSuggestions);
// If we just entered a text field, maybe it has some old text that requires correction
checkReCorrectionOnStart();
checkTutorial(attribute.privateImeOptions); checkTutorial(attribute.privateImeOptions);
if (TRACE) Debug.startMethodTracing("/data/trace/latinime"); if (TRACE) Debug.startMethodTracing("/data/trace/latinime");
} }
private void checkReCorrectionOnStart() {
if (mReCorrectionEnabled && isPredictionOn()) {
// First get the cursor position. This is required by setOldSuggestions(), so that
// it can pass the correct range to setComposingRegion(). At this point, we don't
// have valid values for mLastSelectionStart/Stop because onUpdateSelection() has
// not been called yet.
InputConnection ic = getCurrentInputConnection();
if (ic == null) return;
ExtractedTextRequest etr = new ExtractedTextRequest();
etr.token = 0; // anything is fine here
ExtractedText et = ic.getExtractedText(etr, 0);
if (et == null) return;
mLastSelectionStart = et.startOffset + et.selectionStart;
mLastSelectionEnd = et.startOffset + et.selectionEnd;
// Then look for possible corrections in a delayed fashion
if (!TextUtils.isEmpty(et.text)) postUpdateOldSuggestions();
}
}
@Override @Override
public void onFinishInput() { public void onFinishInput() {
super.onFinishInput(); super.onFinishInput();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment