Merge "Rename InputConnecton#setImeTemporarilyConsumesInput" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-02-07 03:13:55 +00:00
committed by Android (Google) Code Review
10 changed files with 46 additions and 48 deletions

View File

@@ -51075,7 +51075,7 @@ package android.view.inputmethod {
method public boolean sendKeyEvent(android.view.KeyEvent);
method public boolean setComposingRegion(int, int);
method public boolean setComposingText(CharSequence, int);
method public default boolean setImeTemporarilyConsumesInput(boolean);
method public default boolean setImeConsumesInput(boolean);
method public boolean setSelection(int, int);
field public static final int CURSOR_UPDATE_IMMEDIATE = 1; // 0x1
field public static final int CURSOR_UPDATE_MONITOR = 2; // 0x2

View File

@@ -164,12 +164,12 @@ public class BaseInputConnection implements InputConnection {
/**
* Default implementation calls {@link #finishComposingText()} and
* {@code setImeTemporarilyConsumesInput(false)}.
* {@code setImeConsumesInput(false)}.
*/
@CallSuper
public void closeConnection() {
finishComposingText();
setImeTemporarilyConsumesInput(false);
setImeConsumesInput(false);
}
/**

View File

@@ -1004,20 +1004,19 @@ public interface InputConnection {
@Nullable Bundle opts);
/**
* Called by the input method to indicate that it temporarily consumes all input for itself,
* or no longer does so.
* Called by the input method to indicate that it consumes all input for itself, or no longer
* does so.
*
* <p>Editors should reflect that they are temporarily not receiving input by hiding the
* cursor if {@code imeTemporarilyConsumesInput} is {@code true}, and resume showing the
* cursor if it is {@code false}.
* <p>Editors should reflect that they are not receiving input by hiding the cursor if
* {@code imeConsumesInput} is {@code true}, and resume showing the cursor if it is
* {@code false}.
*
* @param imeTemporarilyConsumesInput {@code true} when the IME is temporarily consuming input
* and the cursor should be hidden, {@code false} when input to the editor resumes and the
* cursor should be shown again.
* @param imeConsumesInput {@code true} when the IME is consuming input and the cursor should be
* hidden, {@code false} when input to the editor resumes and the cursor should be shown again.
* @return {@code true} on success, {@code false} if the input connection is no longer valid, or
* the protocol is not supported.
*/
default boolean setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
default boolean setImeConsumesInput(boolean imeConsumesInput) {
return false;
}
}

View File

@@ -341,7 +341,7 @@ public class InputConnectionWrapper implements InputConnection {
* @throws NullPointerException if the target is {@code null}.
*/
@Override
public boolean setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
return mTarget.setImeTemporarilyConsumesInput(imeTemporarilyConsumesInput);
public boolean setImeConsumesInput(boolean imeConsumesInput) {
return mTarget.setImeConsumesInput(imeConsumesInput);
}
}

View File

@@ -497,9 +497,9 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
private TextUtils.TruncateAt mEllipsize;
// A flag to indicate the cursor was hidden by IME.
private boolean mImeTemporarilyConsumesInput;
private boolean mImeIsConsumingInput;
// Whether cursor is visible without regard to {@link mImeTemporarilyConsumesInput}.
// Whether cursor is visible without regard to {@link mImeConsumesInput}.
// {code true} is the default value.
private boolean mCursorVisibleFromAttr = true;
@@ -10506,8 +10506,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
/**
* Set whether the cursor is visible. The default is true. Note that this property only
* makes sense for editable TextView. If IME is temporarily consuming the input, the cursor will
* be always invisible, visibility will be updated as the last state when IME does not consume
* makes sense for editable TextView. If IME is consuming the input, the cursor will always be
* invisible, visibility will be updated as the last state when IME does not consume
* the input anymore.
*
* @see #isCursorVisible()
@@ -10521,20 +10521,20 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
/**
* Sets the IME is temporarily consuming the input and make the cursor invisible if
* {@code imeTemporarilyConsumesInput} is {@code true}. Otherwise, make the cursor visible.
* Sets the IME is consuming the input and make the cursor invisible if {@code imeConsumesInput}
* is {@code true}. Otherwise, make the cursor visible.
*
* @param imeTemporarilyConsumesInput {@code true} if IME is temporarily consuming the input
* @param imeConsumesInput {@code true} if IME is consuming the input
*
* @hide
*/
public void setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
mImeTemporarilyConsumesInput = imeTemporarilyConsumesInput;
public void setImeConsumesInput(boolean imeConsumesInput) {
mImeIsConsumingInput = imeConsumesInput;
updateCursorVisibleInternal();
}
private void updateCursorVisibleInternal() {
boolean visible = mCursorVisibleFromAttr && !mImeTemporarilyConsumesInput;
boolean visible = mCursorVisibleFromAttr && !mImeIsConsumingInput;
if (visible && mEditor == null) return; // visible is the default value with no edit data
createEditorIfNeeded();
if (mEditor.mCursorVisible != visible) {
@@ -10550,7 +10550,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
/**
* @return whether or not the cursor is visible (assuming this TextView is editable). This
* method may return {@code false} when the IME is temporarily consuming the input even if the
* method may return {@code false} when the IME is consuming the input even if the
* {@code mEditor.mCursorVisible} attribute is {@code true} or {@code #setCursorVisible(true)}
* is called.
*

View File

@@ -79,7 +79,7 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
private static final int DO_CLOSE_CONNECTION = 150;
private static final int DO_COMMIT_CONTENT = 160;
private static final int DO_GET_SURROUNDING_TEXT = 41;
private static final int DO_SET_IME_TEMPORARILY_CONSUMES_INPUT = 170;
private static final int DO_SET_IME_CONSUMES_INPUT = 170;
@GuardedBy("mLock")
@@ -268,13 +268,12 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
}
/**
* Dispatches the request for setting ime temporarily consumes input.
* Dispatches the request for setting ime consumes input.
*
* <p>See {@link InputConnection#setImeTemporarilyConsumesInput(boolean)}.
* <p>See {@link InputConnection#setImeConsumesInput(boolean)}.
*/
public void setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
dispatchMessage(obtainMessageB(DO_SET_IME_TEMPORARILY_CONSUMES_INPUT,
imeTemporarilyConsumesInput));
public void setImeConsumesInput(boolean imeConsumesInput) {
dispatchMessage(obtainMessageB(DO_SET_IME_CONSUMES_INPUT, imeConsumesInput));
}
void dispatchMessage(Message msg) {
@@ -822,17 +821,17 @@ public abstract class IInputConnectionWrapper extends IInputContext.Stub {
}
return;
}
case DO_SET_IME_TEMPORARILY_CONSUMES_INPUT: {
case DO_SET_IME_CONSUMES_INPUT: {
Trace.traceBegin(Trace.TRACE_TAG_INPUT,
"InputConnection#setImeTemporarilyConsumesInput");
"InputConnection#setImeConsumesInput");
try {
InputConnection ic = getInputConnection();
if (ic == null || !isActive()) {
Log.w(TAG,
"setImeTemporarilyConsumesInput on inactive InputConnection");
"setImeConsumesInput on inactive InputConnection");
return;
}
ic.setImeTemporarilyConsumesInput(msg.arg1 == 1);
ic.setImeConsumesInput(msg.arg1 == 1);
} finally {
Trace.traceEnd(Trace.TRACE_TAG_INPUT);
}

View File

@@ -86,5 +86,5 @@ import com.android.internal.inputmethod.ISurroundingTextResultCallback;
void getSurroundingText(int beforeLength, int afterLength, int flags,
ISurroundingTextResultCallback callback);
void setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput);
void setImeConsumesInput(boolean imeConsumesInput);
}

View File

@@ -525,12 +525,12 @@ public class InputConnectionWrapper implements InputConnection {
}
/**
* See {@link InputConnection#setImeTemporarilyConsumesInput(boolean)}.
* See {@link InputConnection#setImeConsumesInput(boolean)}.
*/
@AnyThread
public boolean setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
public boolean setImeConsumesInput(boolean imeConsumesInput) {
try {
mIInputContext.setImeTemporarilyConsumesInput(imeTemporarilyConsumesInput);
mIInputContext.setImeConsumesInput(imeConsumesInput);
return true;
} catch (RemoteException e) {
return false;

View File

@@ -245,11 +245,11 @@ public class EditableInputConnection extends BaseInputConnection
}
@Override
public boolean setImeTemporarilyConsumesInput(boolean imeTemporarilyConsumesInput) {
public boolean setImeConsumesInput(boolean imeConsumesInput) {
if (mTextView == null) {
return super.setImeTemporarilyConsumesInput(imeTemporarilyConsumesInput);
return super.setImeConsumesInput(imeConsumesInput);
}
mTextView.setImeTemporarilyConsumesInput(imeTemporarilyConsumesInput);
mTextView.setImeConsumesInput(imeConsumesInput);
return true;
}

View File

@@ -278,29 +278,29 @@ public class TextViewTest {
@Test
@UiThreadTest
public void setSetImeTemporarilyConsumesInput_recoveryToVisible() {
public void setSetImeConsumesInput_recoveryToVisible() {
mTextView = new TextView(mActivity);
mTextView.setCursorVisible(true);
assertTrue(mTextView.isCursorVisible());
mTextView.setImeTemporarilyConsumesInput(true);
mTextView.setImeConsumesInput(true);
assertFalse(mTextView.isCursorVisible());
mTextView.setImeTemporarilyConsumesInput(false);
mTextView.setImeConsumesInput(false);
assertTrue(mTextView.isCursorVisible());
}
@Test
@UiThreadTest
public void setSetImeTemporarilyConsumesInput_recoveryToInvisible() {
public void setSetImeConsumesInput_recoveryToInvisible() {
mTextView = new TextView(mActivity);
mTextView.setCursorVisible(false);
assertFalse(mTextView.isCursorVisible());
mTextView.setImeTemporarilyConsumesInput(true);
mTextView.setImeConsumesInput(true);
assertFalse(mTextView.isCursorVisible());
mTextView.setImeTemporarilyConsumesInput(false);
mTextView.setImeConsumesInput(false);
assertFalse(mTextView.isCursorVisible());
}