diff options
author | Joanne Chung <joannechung@google.com> | 2022-05-03 08:10:29 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-05-03 08:10:29 +0000 |
commit | 037bcfce15285f4958ee396821cc42f96b753609 (patch) | |
tree | 5890cfcf01952d7c465d744284031784e22d1e3e | |
parent | 4cb200dfb1f3b02beebddc5b4b50221f1f79dd60 (diff) | |
parent | 7a62cf901d6c7340cf8521ef21d0a47f975572b2 (diff) | |
download | development-037bcfce15285f4958ee396821cc42f96b753609.tar.gz |
Merge "Add dialog present support for AutofillService." into tm-dev
2 files changed, 21 insertions, 2 deletions
diff --git a/samples/InlineFillService/src/com/example/android/inlinefillservice/InlineFillService.java b/samples/InlineFillService/src/com/example/android/inlinefillservice/InlineFillService.java index cce61378f..1fa58c1c1 100644 --- a/samples/InlineFillService/src/com/example/android/inlinefillservice/InlineFillService.java +++ b/samples/InlineFillService/src/com/example/android/inlinefillservice/InlineFillService.java @@ -134,8 +134,13 @@ public class InlineFillService extends AutofillService { response.addDataset(InlineRequestHelper.createInlineActionDataset(context, fields, inlineRequest.get(), R.drawable.ic_settings)); } + // 3. Add fill dialog + RemoteViews dialogPresentation = + ResponseHelper.newDatasetPresentation(packageName, "Dialog Header"); + response.setDialogHeader(dialogPresentation); + response.setFillDialogTriggerIds(fields.valueAt(0), fields.valueAt(1)); - // 3.Add save info + // 4.Add save info Collection<AutofillId> ids = fields.values(); AutofillId[] requiredIds = new AutofillId[ids.size()]; ids.toArray(requiredIds); @@ -143,7 +148,7 @@ public class InlineFillService extends AutofillService { // We're simple, so we're generic new SaveInfo.Builder(SaveInfo.SAVE_DATA_TYPE_GENERIC, requiredIds).build()); - // 4.Profit! + // 5.Profit! return response.build(); } diff --git a/samples/InlineFillService/src/com/example/android/inlinefillservice/ResponseHelper.java b/samples/InlineFillService/src/com/example/android/inlinefillservice/ResponseHelper.java index f6e6ab7e8..d33f19cde 100644 --- a/samples/InlineFillService/src/com/example/android/inlinefillservice/ResponseHelper.java +++ b/samples/InlineFillService/src/com/example/android/inlinefillservice/ResponseHelper.java @@ -59,8 +59,10 @@ class ResponseHelper { // Set presentation final Presentations.Builder fieldPresentationsBuilder = new Presentations.Builder(); + // Dropdown presentation final RemoteViews presentation = newDatasetPresentation(packageName, displayValue); fieldPresentationsBuilder.setMenuPresentation(presentation); + // Inline presentation if (inlineRequest.isPresent()) { Log.d(TAG, "Found InlineSuggestionsRequest in FillRequest: " + inlineRequest); final InlinePresentation inlinePresentation = @@ -68,6 +70,11 @@ class ResponseHelper { displayValue, index); fieldPresentationsBuilder.setInlinePresentation(inlinePresentation); } + // Dialog presentation + RemoteViews dialogPresentation = + newDatasetPresentation(packageName, "Dialog Presentation " + (index + 1)); + fieldPresentationsBuilder.setDialogPresentation(dialogPresentation); + fieldBuilder.setPresentations(fieldPresentationsBuilder.build()); dataset.setField(id, fieldBuilder.build()); } @@ -92,15 +99,22 @@ class ResponseHelper { Field.Builder fieldBuilder = new Field.Builder(); fieldBuilder.setValue(AutofillValue.forText(value)); + // Dropdown presentation final Presentations.Builder fieldPresentationsBuilder = new Presentations.Builder(); fieldPresentationsBuilder.setMenuPresentation(presentation); + // Inline presentation if (inlineRequest.isPresent()) { final InlinePresentation inlinePresentation = InlineRequestHelper.createInlineDataset(context, inlineRequest.get(), displayValue, index); fieldPresentationsBuilder.setInlinePresentation(inlinePresentation); } + // Dialog presentation + RemoteViews dialogPresentation = + newDatasetPresentation(packageName, "Dialog Presentation " + (index + 1)); + fieldPresentationsBuilder.setDialogPresentation(dialogPresentation); + fieldBuilder.setPresentations(fieldPresentationsBuilder.build()); lockedDataset.setField(id, fieldBuilder.build()); lockedDataset.setId(null).setAuthentication(authentication); |