Fix AutofillManager and Session status not sync with fill dialog

AutofillManager only allow show fill dialog once, but Autofill Session
is not. Make Session diabled after shown fill dialog.

Bug: 230526485
Test: atest android.autofillservice.cts.dialog.LoginActivityTest
Test: Manual - click two fields that supported fill dialog.
      Result - second field does not show fill dialog.
Change-Id: I1145c3b44058143b6751c27f1e5619d7a4ebea58
This commit is contained in:
TYM Tsai
2022-05-03 18:59:27 +08:00
parent 0a6445f43b
commit 1fd983bde1

View File

@@ -3225,10 +3225,15 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
currentView.setState(ViewState.STATE_FILL_DIALOG_SHOWN);
mService.logDatasetShown(id, mClientState, UI_TYPE_DIALOG);
}
// Just show fill dialog once, so disabled after shown.
// Note: Cannot disable before requestShowFillDialog() because the method
// need to check whether fill dialog enabled.
setFillDialogDisabled();
return;
} else {
setFillDialogDisabled();
}
}
if (response.supportsInlineSuggestions()) {