Merge "Do not expose fallback InputConnection to A11y IME" into tm-dev
This commit is contained in:
@@ -62,7 +62,6 @@ public class InputMethod {
|
|||||||
|
|
||||||
private final AccessibilityService mService;
|
private final AccessibilityService mService;
|
||||||
private InputBinding mInputBinding;
|
private InputBinding mInputBinding;
|
||||||
private InputConnection mInputConnection;
|
|
||||||
private boolean mInputStarted;
|
private boolean mInputStarted;
|
||||||
private InputConnection mStartedInputConnection;
|
private InputConnection mStartedInputConnection;
|
||||||
private EditorInfo mInputEditorInfo;
|
private EditorInfo mInputEditorInfo;
|
||||||
@@ -81,12 +80,8 @@ public class InputMethod {
|
|||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public final AccessibilityInputConnection getCurrentInputConnection() {
|
public final AccessibilityInputConnection getCurrentInputConnection() {
|
||||||
InputConnection ic = mStartedInputConnection;
|
if (mStartedInputConnection != null) {
|
||||||
if (ic != null) {
|
return new AccessibilityInputConnection(mStartedInputConnection);
|
||||||
return new AccessibilityInputConnection(ic);
|
|
||||||
}
|
|
||||||
if (mInputConnection != null) {
|
|
||||||
return new AccessibilityInputConnection(mInputConnection);
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -136,10 +131,8 @@ public class InputMethod {
|
|||||||
* to perform whatever behavior you would like.
|
* to perform whatever behavior you would like.
|
||||||
*/
|
*/
|
||||||
public void onFinishInput() {
|
public void onFinishInput() {
|
||||||
InputConnection ic = mStartedInputConnection != null ? mStartedInputConnection
|
if (mStartedInputConnection != null) {
|
||||||
: mInputConnection;
|
mStartedInputConnection.finishComposingText();
|
||||||
if (ic != null) {
|
|
||||||
ic.finishComposingText();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,18 +169,14 @@ public class InputMethod {
|
|||||||
final void bindInput(@NonNull InputBinding binding) {
|
final void bindInput(@NonNull InputBinding binding) {
|
||||||
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.bindInput");
|
Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "AccessibilityService.bindInput");
|
||||||
mInputBinding = binding;
|
mInputBinding = binding;
|
||||||
mInputConnection = binding.getConnection();
|
Log.v(LOG_TAG, "bindInput(): binding=" + binding);
|
||||||
Log.v(LOG_TAG, "bindInput(): binding=" + binding
|
|
||||||
+ " ic=" + mInputConnection);
|
|
||||||
Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
|
Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
|
||||||
}
|
}
|
||||||
|
|
||||||
final void unbindInput() {
|
final void unbindInput() {
|
||||||
Log.v(LOG_TAG, "unbindInput(): binding=" + mInputBinding
|
Log.v(LOG_TAG, "unbindInput(): binding=" + mInputBinding);
|
||||||
+ " ic=" + mInputConnection);
|
|
||||||
// Unbind input is per process per display.
|
// Unbind input is per process per display.
|
||||||
mInputBinding = null;
|
mInputBinding = null;
|
||||||
mInputConnection = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final void startInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
|
final void startInput(@Nullable InputConnection ic, @NonNull EditorInfo attribute) {
|
||||||
@@ -206,8 +195,12 @@ public class InputMethod {
|
|||||||
|
|
||||||
|
|
||||||
final void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
|
final void doStartInput(InputConnection ic, EditorInfo attribute, boolean restarting) {
|
||||||
if (!restarting && mInputStarted) {
|
if ((ic == null || !restarting) && mInputStarted) {
|
||||||
doFinishInput();
|
doFinishInput();
|
||||||
|
if (ic == null) {
|
||||||
|
// Unlike InputMethodService, A11y IME should not observe fallback InputConnection.
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mInputStarted = true;
|
mInputStarted = true;
|
||||||
mStartedInputConnection = ic;
|
mStartedInputConnection = ic;
|
||||||
@@ -224,6 +217,7 @@ public class InputMethod {
|
|||||||
}
|
}
|
||||||
mInputStarted = false;
|
mInputStarted = false;
|
||||||
mStartedInputConnection = null;
|
mStartedInputConnection = null;
|
||||||
|
mInputEditorInfo = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private InputMethodSession onCreateInputMethodSessionInterface() {
|
private InputMethodSession onCreateInputMethodSessionInterface() {
|
||||||
|
|||||||
Reference in New Issue
Block a user