Merge "Send onViewClicked in the extract mode"

This commit is contained in:
satok
2011-09-07 19:50:54 -07:00
committed by Android (Google) Code Review
2 changed files with 25 additions and 4 deletions

View File

@@ -19,6 +19,7 @@ package android.inputmethodservice;
import android.content.Context; import android.content.Context;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.inputmethod.ExtractedText; import android.view.inputmethod.ExtractedText;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText; import android.widget.EditText;
/*** /***
@@ -142,4 +143,17 @@ public class ExtractEditText extends EditText {
@Override public boolean hasFocus() { @Override public boolean hasFocus() {
return this.isEnabled(); return this.isEnabled();
} }
/**
* @hide
*/
@Override protected void viewClicked(InputMethodManager imm) {
// As an instance of this class is supposed to be owned by IMS,
// and it has a reference to the IMS (the current IME),
// we just need to call back its onViewClicked() here.
// It should be good to avoid unnecessary IPCs by doing this as well.
if (mIME != null) {
mIME.onViewClicked(false);
}
}
} }

View File

@@ -5432,8 +5432,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if (mMovement != null && mText instanceof Editable if (mMovement != null && mText instanceof Editable
&& mLayout != null && onCheckIsTextEditor()) { && mLayout != null && onCheckIsTextEditor()) {
InputMethodManager imm = InputMethodManager.peekInstance(); InputMethodManager imm = InputMethodManager.peekInstance();
viewClicked(imm);
if (imm != null) { if (imm != null) {
imm.viewClicked(this);
imm.showSoftInput(this, 0); imm.showSoftInput(this, 0);
} }
} }
@@ -8346,9 +8346,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
if (touchIsFinished && (isTextEditable() || mTextIsSelectable)) { if (touchIsFinished && (isTextEditable() || mTextIsSelectable)) {
// Show the IME, except when selecting in read-only text. // Show the IME, except when selecting in read-only text.
final InputMethodManager imm = InputMethodManager.peekInstance(); final InputMethodManager imm = InputMethodManager.peekInstance();
if (imm != null) { viewClicked(imm);
imm.viewClicked(this);
}
if (!mTextIsSelectable) { if (!mTextIsSelectable) {
handled |= imm != null && imm.showSoftInput(this, 0); handled |= imm != null && imm.showSoftInput(this, 0);
} }
@@ -11310,6 +11308,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
mResolvedDrawables = false; mResolvedDrawables = false;
} }
/**
* @hide
*/
protected void viewClicked(InputMethodManager imm) {
if (imm != null) {
imm.viewClicked(this);
}
}
@ViewDebug.ExportedProperty(category = "text") @ViewDebug.ExportedProperty(category = "text")
private CharSequence mText; private CharSequence mText;
private CharSequence mTransformed; private CharSequence mTransformed;