summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoanne Chung <joannechung@google.com>2022-05-03 08:10:29 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-05-03 08:10:29 +0000
commit037bcfce15285f4958ee396821cc42f96b753609 (patch)
tree5890cfcf01952d7c465d744284031784e22d1e3e
parent4cb200dfb1f3b02beebddc5b4b50221f1f79dd60 (diff)
parent7a62cf901d6c7340cf8521ef21d0a47f975572b2 (diff)
downloaddevelopment-037bcfce15285f4958ee396821cc42f96b753609.tar.gz
Merge "Add dialog present support for AutofillService." into tm-dev
-rw-r--r--samples/InlineFillService/src/com/example/android/inlinefillservice/InlineFillService.java9
-rw-r--r--samples/InlineFillService/src/com/example/android/inlinefillservice/ResponseHelper.java14
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);