Don't trigger autofill requests on fields present in the initial request.

On Android O, when the autofill service returned null to a fill request we'd close both the
server-side and client-side sessions. The downside is that if new views were dynamically added,
it wouldn't trigger more request (which was problematic on apps using WebView)

On Android P, we changed it so the client-side was marked as FINISHED, but we kept track of which
fields were already focused, so it wouldn't trigger more requests when their were focused again.

Now on Android Q we're optimizing it further so we don't trigger extra requests on any field that
were originally present during the fill request (but we still trigger it for fields added later).

Test: atest CtsAutoFillServiceTestCases:android.autofillservice.cts.LoginActivityTest#testAutoFillNoDatasets_multipleFields_alwaysNull

Test: atest CtsAutoFillServiceTestCases # sanity check

Fixes: 128551128

Change-Id: Iaa203dc415bfd68647f07e8d7be1ce07bb49ffc9
5 files changed