Merge "Update ViewState value when it's clicked again." into qt-dev
diff --git a/services/autofill/java/com/android/server/autofill/Session.java b/services/autofill/java/com/android/server/autofill/Session.java
index 9e73684d..9eda9db 100644
--- a/services/autofill/java/com/android/server/autofill/Session.java
+++ b/services/autofill/java/com/android/server/autofill/Session.java
@@ -33,7 +33,6 @@
import static com.android.server.autofill.Helper.sDebug;
import static com.android.server.autofill.Helper.sVerbose;
import static com.android.server.autofill.Helper.toArray;
-import static com.android.server.autofill.ViewState.STATE_RESTARTED_SESSION;
import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_RECEIVER_EXTRAS;
import static com.android.server.wm.ActivityTaskManagerInternal.ASSIST_KEY_STRUCTURE;
@@ -564,7 +563,8 @@
* Reads a new structure and then request a new fill response from the fill service.
*/
@GuardedBy("mLock")
- private void requestNewFillResponseLocked(int flags) {
+ private void requestNewFillResponseLocked(@NonNull ViewState viewState, int newState,
+ int flags) {
if (mForAugmentedAutofillOnly || (flags & FLAG_AUGMENTED_AUTOFILL_REQUEST) != 0) {
// TODO(b/122858578): log metrics
if (sVerbose) {
@@ -575,6 +575,7 @@
triggerAugmentedAutofillLocked();
return;
}
+ viewState.setState(newState);
int requestId;
@@ -2165,19 +2166,17 @@
@NonNull ViewState viewState, int flags) {
if ((flags & FLAG_MANUAL_REQUEST) != 0) {
if (sDebug) Slog.d(TAG, "Re-starting session on view " + id + " and flags " + flags);
- viewState.setState(STATE_RESTARTED_SESSION);
- requestNewFillResponseLocked(flags);
+ requestNewFillResponseLocked(viewState, ViewState.STATE_RESTARTED_SESSION, flags);
return;
}
// If it's not, then check if it it should start a partition.
if (shouldStartNewPartitionLocked(id)) {
if (sDebug) {
- Slog.d(TAG, "Starting partition for view id " + id + ": "
+ Slog.d(TAG, "Starting partition or augmented request for view id " + id + ": "
+ viewState.getStateAsString());
}
- viewState.setState(ViewState.STATE_STARTED_PARTITION);
- requestNewFillResponseLocked(flags);
+ requestNewFillResponseLocked(viewState, ViewState.STATE_STARTED_PARTITION, flags);
} else {
if (sVerbose) {
Slog.v(TAG, "Not starting new partition for view " + id + ": "
@@ -2283,8 +2282,7 @@
// View is triggering autofill.
mCurrentViewId = viewState.id;
viewState.update(value, virtualBounds, flags);
- viewState.setState(ViewState.STATE_STARTED_SESSION);
- requestNewFillResponseLocked(flags);
+ requestNewFillResponseLocked(viewState, ViewState.STATE_STARTED_SESSION, flags);
break;
case ACTION_VALUE_CHANGED:
if (mCompatMode && (viewState.getState() & ViewState.STATE_URL_BAR) != 0) {
@@ -2386,6 +2384,10 @@
Slog.v(TAG, "entered on virtual child " + id + ": " + virtualBounds);
}
+ // Update the view states first...
+ mCurrentViewId = viewState.id;
+ viewState.setCurrentValue(value);
+
if (mCompatMode && (viewState.getState() & ViewState.STATE_URL_BAR) != 0) {
if (sDebug) Slog.d(TAG, "Ignoring VIEW_ENTERED on URL BAR (id=" + id + ")");
return;
@@ -2397,10 +2399,6 @@
if (sDebug) Slog.d(TAG, "updateLocked(" + id + "): augmented-autofillable");
- // Update the view states first...
- mCurrentViewId = viewState.id;
- viewState.setCurrentValue(value);
-
// ...then trigger the augmented autofill UI
triggerAugmentedAutofillLocked();
return;