Merge "Zero out autofill id when no InputConnection"
This commit is contained in:
committed by
Android (Google) Code Review
commit
1a68d9c04d
@@ -72,6 +72,10 @@ public final class AutofillId implements Parcelable {
|
||||
mSessionId = sessionId;
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
@NonNull
|
||||
public static final AutofillId NO_AUTOFILL_ID = new AutofillId(0);
|
||||
|
||||
/** @hide */
|
||||
@NonNull
|
||||
@TestApi
|
||||
|
||||
@@ -90,6 +90,7 @@ import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewRootImpl;
|
||||
import android.view.WindowManager.LayoutParams.SoftInputModeFlags;
|
||||
import android.view.autofill.AutofillId;
|
||||
import android.view.autofill.AutofillManager;
|
||||
import android.window.ImeOnBackInvokedDispatcher;
|
||||
import android.window.WindowOnBackInvokedDispatcher;
|
||||
@@ -2339,6 +2340,14 @@ public final class InputMethodManager {
|
||||
InputConnection ic = view.onCreateInputConnection(tba);
|
||||
if (DEBUG) Log.v(TAG, "Starting input: tba=" + tba + " ic=" + ic);
|
||||
|
||||
// Clear autofill and field ids if a connection could not be established.
|
||||
// This ensures that even disconnected EditorInfos have well-defined attributes,
|
||||
// making them consistently and straightforwardly comparable.
|
||||
if (ic == null) {
|
||||
tba.autofillId = AutofillId.NO_AUTOFILL_ID;
|
||||
tba.fieldId = 0;
|
||||
}
|
||||
|
||||
final Handler icHandler;
|
||||
InputBindResult res = null;
|
||||
synchronized (mH) {
|
||||
@@ -2376,7 +2385,7 @@ public final class InputMethodManager {
|
||||
mServedInputConnection = null;
|
||||
mServedInputConnectionHandler = null;
|
||||
}
|
||||
RemoteInputConnectionImpl servedInputConnection;
|
||||
final RemoteInputConnectionImpl servedInputConnection;
|
||||
if (ic != null) {
|
||||
mCursorSelStart = tba.initialSelStart;
|
||||
mCursorSelEnd = tba.initialSelEnd;
|
||||
|
||||
Reference in New Issue
Block a user