Commit 6d0a8e5f authored by Luca Hunkeler's avatar Luca Hunkeler Committed by Commit Bot

[Autofill Assistant] Support interactions with multiple triggers

Before this cl if you wanted a callback to trigger when any of a list of
events happened, you'd have to add multiple interactions. Supporting
multiple events allows for a more compact proto with less duplication
in those cases.

Bug: b/168195199
Change-Id: I5614fc741ab83801a1102e1e4c2b99a4add04e86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2435639
Commit-Queue: Luca Hunkeler <hluca@google.com>
Reviewed-by: default avatarMarian Fechete <marianfe@google.com>
Reviewed-by: default avatarClemens Arbesser <arbesser@google.com>
Cr-Commit-Position: refs/heads/master@{#811954}
parent 14092f34
...@@ -449,7 +449,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -449,7 +449,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactionsPrepended = new ArrayList<>(); List<InteractionProto> interactionsPrepended = new ArrayList<>();
interactionsPrepended.add( interactionsPrepended.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView1"))) "clickableView1")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -463,7 +463,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -463,7 +463,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactionsAppended = new ArrayList<>(); List<InteractionProto> interactionsAppended = new ArrayList<>();
interactionsAppended.add( interactionsAppended.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView2"))) "clickableView2")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -588,7 +588,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -588,7 +588,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView"))) "clickableView")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -609,7 +609,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -609,7 +609,7 @@ public class AutofillAssistantGenericUiTest {
// Whenever output_1 changes, copy the value to output_2. // Whenever output_1 changes, copy the value to output_2.
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"output_1"))) "output_1")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -624,7 +624,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -624,7 +624,7 @@ public class AutofillAssistantGenericUiTest {
// is created, because events should only be fired for actual value changes. // is created, because events should only be fired for actual value changes.
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"output_2"))) "output_2")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -745,7 +745,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -745,7 +745,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView"))) "clickableView")))
.addCallbacks(CallbackProto.newBuilder().setShowInfoPopup( .addCallbacks(CallbackProto.newBuilder().setShowInfoPopup(
...@@ -795,7 +795,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -795,7 +795,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -804,7 +804,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -804,7 +804,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -813,7 +813,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -813,7 +813,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView"))) "clickableView")))
.addCallbacks(CallbackProto.newBuilder().setShowListPopup( .addCallbacks(CallbackProto.newBuilder().setShowListPopup(
...@@ -939,7 +939,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -939,7 +939,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView1"))) "clickableView1")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -952,7 +952,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -952,7 +952,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickableView2"))) "clickableView2")))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
...@@ -965,23 +965,10 @@ public class AutofillAssistantGenericUiTest { ...@@ -965,23 +965,10 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"output1"))) "output1")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
ComputeValueProto.newBuilder()
.setBooleanAnd(BooleanAndProto.newBuilder().addAllValues(
Arrays.asList(ValueReferenceProto.newBuilder()
.setModelIdentifier("output1")
.build(),
ValueReferenceProto.newBuilder()
.setModelIdentifier("output2")
.build())))
.setResultModelIdentifier("combined")))
.build());
interactions.add(
(InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"output2"))) "output2")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1062,7 +1049,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1062,7 +1049,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -1071,7 +1058,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1071,7 +1058,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -1173,7 +1160,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1173,7 +1160,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -1182,7 +1169,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1182,7 +1169,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -1191,7 +1178,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1191,7 +1178,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"text_view"))) "text_view")))
.addCallbacks(CallbackProto.newBuilder().setShowCalendarPopup( .addCallbacks(CallbackProto.newBuilder().setShowCalendarPopup(
...@@ -1214,7 +1201,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1214,7 +1201,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"date"))) "date")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1376,7 +1363,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1376,7 +1363,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -1386,7 +1373,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1386,7 +1373,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"enabled"))) "enabled")))
.addCallbacks(CallbackProto.newBuilder().setToggleUserAction( .addCallbacks(CallbackProto.newBuilder().setToggleUserAction(
...@@ -1399,7 +1386,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1399,7 +1386,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"text_view"))) "text_view")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1476,7 +1463,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1476,7 +1463,7 @@ public class AutofillAssistantGenericUiTest {
.build(); .build();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"text_view"))) "text_view")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1501,7 +1488,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1501,7 +1488,7 @@ public class AutofillAssistantGenericUiTest {
.build(); .build();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"counter"))) "counter")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1567,7 +1554,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1567,7 +1554,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"toggle_view"))) "toggle_view")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -1579,7 +1566,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1579,7 +1566,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"visible"))) "visible")))
.addCallbacks(CallbackProto.newBuilder().setSetViewVisibility( .addCallbacks(CallbackProto.newBuilder().setSetViewVisibility(
...@@ -1676,7 +1663,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1676,7 +1663,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -1685,7 +1672,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1685,7 +1672,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -1765,7 +1752,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -1765,7 +1752,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnTextLinkClicked( .addTriggerEvent(EventProto.newBuilder().setOnTextLinkClicked(
OnTextLinkClickedProto.newBuilder().setTextLink(1))) OnTextLinkClickedProto.newBuilder().setTextLink(1)))
.addCallbacks(CallbackProto.newBuilder().setSetValue( .addCallbacks(CallbackProto.newBuilder().setSetValue(
SetModelValueProto.newBuilder() SetModelValueProto.newBuilder()
...@@ -2008,7 +1995,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2008,7 +1995,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -2017,7 +2004,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2017,7 +2004,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -2156,7 +2143,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2156,7 +2143,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"toggle_view"))) "toggle_view")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -2168,7 +2155,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2168,7 +2155,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"enabled"))) "enabled")))
.addCallbacks(CallbackProto.newBuilder().setSetViewEnabled( .addCallbacks(CallbackProto.newBuilder().setSetViewEnabled(
...@@ -2248,7 +2235,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2248,7 +2235,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactionsA = new ArrayList<>(); List<InteractionProto> interactionsA = new ArrayList<>();
interactionsA.add( interactionsA.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -2257,7 +2244,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2257,7 +2244,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactionsA.add((InteractionProto) InteractionProto.newBuilder() interactionsA.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"shared_identifier"))) "shared_identifier")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -2291,7 +2278,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2291,7 +2278,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactionsB = new ArrayList<>(); List<InteractionProto> interactionsB = new ArrayList<>();
interactionsB.add( interactionsB.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -2300,7 +2287,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2300,7 +2287,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactionsB.add((InteractionProto) InteractionProto.newBuilder() interactionsB.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"shared_identifier"))) "shared_identifier")))
.addCallbacks(CallbackProto.newBuilder().setShowInfoPopup( .addCallbacks(CallbackProto.newBuilder().setShowInfoPopup(
...@@ -2385,7 +2372,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2385,7 +2372,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions_nested = new ArrayList<>(); List<InteractionProto> interactions_nested = new ArrayList<>();
interactions_nested.add( interactions_nested.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"nested_text_view"))) "nested_text_view")))
.addCallbacks(incrementCounterCallback) .addCallbacks(incrementCounterCallback)
...@@ -2400,7 +2387,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2400,7 +2387,7 @@ public class AutofillAssistantGenericUiTest {
// Clicking |root_text_view| will increment |counter| by 1 and open a nested popup. // Clicking |root_text_view| will increment |counter| by 1 and open a nested popup.
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"root_text_view"))) "root_text_view")))
.addCallbacks(incrementCounterCallback) .addCallbacks(incrementCounterCallback)
...@@ -2411,7 +2398,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2411,7 +2398,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -2420,7 +2407,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2420,7 +2407,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
...@@ -2588,7 +2575,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2588,7 +2575,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"text_view_create_nested_on_click"))) "text_view_create_nested_on_click")))
.addCallbacks(CallbackProto.newBuilder().setCreateNestedUi( .addCallbacks(CallbackProto.newBuilder().setCreateNestedUi(
...@@ -2605,7 +2592,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2605,7 +2592,7 @@ public class AutofillAssistantGenericUiTest {
"Hello World")))))) "Hello World"))))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"text_view_delete_nested_on_click"))) "text_view_delete_nested_on_click")))
.addCallbacks(CallbackProto.newBuilder().setClearViewContainer( .addCallbacks(CallbackProto.newBuilder().setClearViewContainer(
...@@ -2684,7 +2671,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2684,7 +2671,7 @@ public class AutofillAssistantGenericUiTest {
// When touch_area_one_present becomes false, end the action // When touch_area_one_present becomes false, end the action
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"touch_area_one_present"))) "touch_area_one_present")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -2696,7 +2683,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2696,7 +2683,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"end_action"))) "end_action")))
.addCallbacks(CallbackProto.newBuilder() .addCallbacks(CallbackProto.newBuilder()
...@@ -2784,7 +2771,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2784,7 +2771,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickable_view"))) "clickable_view")))
.addCallbacks(CallbackProto.newBuilder().setForEach( .addCallbacks(CallbackProto.newBuilder().setForEach(
...@@ -2915,7 +2902,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -2915,7 +2902,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnViewClicked( .addTriggerEvent(EventProto.newBuilder().setOnViewClicked(
OnViewClickedEventProto.newBuilder().setViewIdentifier( OnViewClickedEventProto.newBuilder().setViewIdentifier(
"clickable_view"))) "clickable_view")))
.addCallbacks(CallbackProto.newBuilder().setForEach( .addCallbacks(CallbackProto.newBuilder().setForEach(
...@@ -3017,7 +3004,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3017,7 +3004,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> singleCardInteractions = new ArrayList<>(); List<InteractionProto> singleCardInteractions = new ArrayList<>();
singleCardInteractions.add( singleCardInteractions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"credit_card_selected_${i}"))) "credit_card_selected_${i}")))
.addCallbacks( .addCallbacks(
...@@ -3068,7 +3055,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3068,7 +3055,7 @@ public class AutofillAssistantGenericUiTest {
List<InteractionProto> interactions = new ArrayList<>(); List<InteractionProto> interactions = new ArrayList<>();
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"credit_cards"))) "credit_cards")))
.addCallbacks(CallbackProto.newBuilder().setClearViewContainer( .addCallbacks(CallbackProto.newBuilder().setClearViewContainer(
...@@ -3119,7 +3106,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3119,7 +3106,7 @@ public class AutofillAssistantGenericUiTest {
// - enable/disable confirm button // - enable/disable confirm button
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"selected_credit_card"))) "selected_credit_card")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -3139,7 +3126,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3139,7 +3126,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"confirm_button_disabled"))) "confirm_button_disabled")))
.addCallbacks(CallbackProto.newBuilder().setComputeValue( .addCallbacks(CallbackProto.newBuilder().setComputeValue(
...@@ -3151,7 +3138,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3151,7 +3138,7 @@ public class AutofillAssistantGenericUiTest {
.build()); .build());
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"confirm_button_enabled"))) "confirm_button_enabled")))
.addCallbacks(CallbackProto.newBuilder().setToggleUserAction( .addCallbacks(CallbackProto.newBuilder().setToggleUserAction(
...@@ -3165,7 +3152,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3165,7 +3152,7 @@ public class AutofillAssistantGenericUiTest {
// A confirm chip interaction that ends the action. // A confirm chip interaction that ends the action.
interactions.add( interactions.add(
(InteractionProto) InteractionProto.newBuilder() (InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnValueChanged( .addTriggerEvent(EventProto.newBuilder().setOnValueChanged(
OnModelValueChangedEventProto.newBuilder().setModelIdentifier( OnModelValueChangedEventProto.newBuilder().setModelIdentifier(
"chips"))) "chips")))
.addCallbacks(CallbackProto.newBuilder().setSetUserActions( .addCallbacks(CallbackProto.newBuilder().setSetUserActions(
...@@ -3174,7 +3161,7 @@ public class AutofillAssistantGenericUiTest { ...@@ -3174,7 +3161,7 @@ public class AutofillAssistantGenericUiTest {
"chips")))) "chips"))))
.build()); .build());
interactions.add((InteractionProto) InteractionProto.newBuilder() interactions.add((InteractionProto) InteractionProto.newBuilder()
.setTriggerEvent(EventProto.newBuilder().setOnUserActionCalled( .addTriggerEvent(EventProto.newBuilder().setOnUserActionCalled(
OnUserActionCalled.newBuilder().setUserActionIdentifier( OnUserActionCalled.newBuilder().setUserActionIdentifier(
"done_chip"))) "done_chip")))
.addCallbacks(CallbackProto.newBuilder().setEndAction( .addCallbacks(CallbackProto.newBuilder().setEndAction(
......
...@@ -30,32 +30,33 @@ bool CreateJavaListenersFromProto( ...@@ -30,32 +30,33 @@ bool CreateJavaListenersFromProto(
base::android::ScopedJavaGlobalRef<jobject> jdelegate, base::android::ScopedJavaGlobalRef<jobject> jdelegate,
const InteractionsProto& proto) { const InteractionsProto& proto) {
for (const auto& interaction_proto : proto.interactions()) { for (const auto& interaction_proto : proto.interactions()) {
const auto& event_proto = interaction_proto.trigger_event(); for (const auto& event_proto : interaction_proto.trigger_event()) {
switch (event_proto.kind_case()) { switch (event_proto.kind_case()) {
case EventProto::kOnViewClicked: { case EventProto::kOnViewClicked: {
auto jview = view_handler->GetView( auto jview = view_handler->GetView(
event_proto.on_view_clicked().view_identifier()); event_proto.on_view_clicked().view_identifier());
if (!jview.has_value()) { if (!jview.has_value()) {
VLOG(1) << "Invalid click event, no view with id='" VLOG(1) << "Invalid click event, no view with id='"
<< event_proto.on_view_clicked().view_identifier() << event_proto.on_view_clicked().view_identifier()
<< "' found"; << "' found";
return false; return false;
}
SetOnClickListener(env, *jview, jdelegate,
event_proto.on_view_clicked());
break;
} }
SetOnClickListener(env, *jview, jdelegate, case EventProto::kOnValueChanged:
event_proto.on_view_clicked()); case EventProto::kOnUserActionCalled:
break; case EventProto::kOnTextLinkClicked:
case EventProto::kOnPopupDismissed:
case EventProto::kOnViewContainerCleared:
// Skip events that do not require registering java-side listeners.
break;
case EventProto::KIND_NOT_SET:
VLOG(1)
<< "Error creating java listener for trigger event: kind not set";
return false;
} }
case EventProto::kOnValueChanged:
case EventProto::kOnUserActionCalled:
case EventProto::kOnTextLinkClicked:
case EventProto::kOnPopupDismissed:
case EventProto::kOnViewContainerCleared:
// Skip events that do not require registering java-side listeners.
break;
case EventProto::KIND_NOT_SET:
VLOG(1)
<< "Error creating java listener for trigger event: kind not set";
return false;
} }
} }
return true; return true;
......
...@@ -315,7 +315,7 @@ bool CreateImplicitInteractionsForView( ...@@ -315,7 +315,7 @@ bool CreateImplicitInteractionsForView(
// Auto-update the text of the view whenever the corresponding value in // Auto-update the text of the view whenever the corresponding value in
// the model changes. // the model changes.
InteractionProto implicit_set_text_interaction; InteractionProto implicit_set_text_interaction;
implicit_set_text_interaction.mutable_trigger_event() implicit_set_text_interaction.add_trigger_event()
->mutable_on_value_changed() ->mutable_on_value_changed()
->set_model_identifier(proto.text_input_view().model_identifier()); ->set_model_identifier(proto.text_input_view().model_identifier());
SetTextProto set_text_callback; SetTextProto set_text_callback;
...@@ -339,7 +339,7 @@ bool CreateImplicitInteractionsForView( ...@@ -339,7 +339,7 @@ bool CreateImplicitInteractionsForView(
} }
// Auto-update text view content. // Auto-update text view content.
InteractionProto implicit_set_text_interaction; InteractionProto implicit_set_text_interaction;
implicit_set_text_interaction.mutable_trigger_event() implicit_set_text_interaction.add_trigger_event()
->mutable_on_value_changed() ->mutable_on_value_changed()
->set_model_identifier(proto.text_view().model_identifier()); ->set_model_identifier(proto.text_view().model_identifier());
SetTextProto set_text_callback; SetTextProto set_text_callback;
......
...@@ -131,12 +131,7 @@ bool InteractionHandlerAndroid::AddInteractionsFromProto( ...@@ -131,12 +131,7 @@ bool InteractionHandlerAndroid::AddInteractionsFromProto(
NOTREACHED() << "Interactions can not be added while listening to events!"; NOTREACHED() << "Interactions can not be added while listening to events!";
return false; return false;
} }
auto key = EventHandler::CreateEventKeyFromProto(proto.trigger_event()); std::vector<InteractionHandlerAndroid::InteractionCallback> callbacks;
if (!key) {
VLOG(1) << "Invalid trigger event for interaction";
return false;
}
for (const auto& callback_proto : proto.callbacks()) { for (const auto& callback_proto : proto.callbacks()) {
auto callback = CreateInteractionCallbackFromProto(callback_proto); auto callback = CreateInteractionCallbackFromProto(callback_proto);
if (!callback) { if (!callback) {
...@@ -150,7 +145,19 @@ bool InteractionHandlerAndroid::AddInteractionsFromProto( ...@@ -150,7 +145,19 @@ bool InteractionHandlerAndroid::AddInteractionsFromProto(
basic_interactions_->GetWeakPtr(), basic_interactions_->GetWeakPtr(),
callback_proto.condition_model_identifier(), *callback)); callback_proto.condition_model_identifier(), *callback));
} }
AddInteraction(*key, *callback); callbacks.push_back(std::move(*callback));
}
for (const auto& trigger_event : proto.trigger_event()) {
auto key = EventHandler::CreateEventKeyFromProto(trigger_event);
if (!key) {
VLOG(1) << "Invalid trigger event of type " << trigger_event.kind_case();
return false;
}
for (const auto& callback : callbacks) {
AddInteraction(*key, callback);
}
} }
return true; return true;
} }
......
...@@ -26,12 +26,13 @@ message InteractionsProto { ...@@ -26,12 +26,13 @@ message InteractionsProto {
repeated InteractionProto interactions = 1; repeated InteractionProto interactions = 1;
} }
// An interaction consists of a trigger event and a series of actions. // An interaction consists of a set of trigger events and a series of actions.
message InteractionProto { message InteractionProto {
// Functions to call each time the event happens, in the specified order. // Functions to call each time one of the events happens, in the specified
// order.
repeated CallbackProto callbacks = 1; repeated CallbackProto callbacks = 1;
// The trigger event for |callbacks|. // The trigger events for |callbacks|.
optional EventProto trigger_event = 2; repeated EventProto trigger_event = 2;
} }
// UI Actions to invoke. // UI Actions to invoke.
......
...@@ -157,9 +157,8 @@ void ReplacePlaceholdersInValue( ...@@ -157,9 +157,8 @@ void ReplacePlaceholdersInValue(
void ReplacePlaceholdersInInteraction( void ReplacePlaceholdersInInteraction(
InteractionProto* in_out_proto, InteractionProto* in_out_proto,
const std::map<std::string, std::string>& placeholders) { const std::map<std::string, std::string>& placeholders) {
if (in_out_proto->has_trigger_event()) { for (auto& trigger_event : *in_out_proto->mutable_trigger_event()) {
ReplacePlaceholdersInEvent(in_out_proto->mutable_trigger_event(), ReplacePlaceholdersInEvent(&trigger_event, placeholders);
placeholders);
} }
for (auto& callback : *in_out_proto->mutable_callbacks()) { for (auto& callback : *in_out_proto->mutable_callbacks()) {
......
...@@ -82,25 +82,25 @@ TEST(GenericUiReplacePlaceholdersTest, ReplacePlaceholdersInEvents) { ...@@ -82,25 +82,25 @@ TEST(GenericUiReplacePlaceholdersTest, ReplacePlaceholdersInEvents) {
GenericUserInterfaceProto input; GenericUserInterfaceProto input;
auto* on_value_changed = input.mutable_interactions() auto* on_value_changed = input.mutable_interactions()
->add_interactions() ->add_interactions()
->mutable_trigger_event() ->add_trigger_event()
->mutable_on_value_changed(); ->mutable_on_value_changed();
on_value_changed->set_model_identifier("value_${i}"); on_value_changed->set_model_identifier("value_${i}");
auto* on_view_clicked = input.mutable_interactions() auto* on_view_clicked = input.mutable_interactions()
->add_interactions() ->add_interactions()
->mutable_trigger_event() ->add_trigger_event()
->mutable_on_view_clicked(); ->mutable_on_view_clicked();
on_view_clicked->set_view_identifier("view_${i}"); on_view_clicked->set_view_identifier("view_${i}");
auto* on_view_container_cleared = input.mutable_interactions() auto* on_view_container_cleared = input.mutable_interactions()
->add_interactions() ->add_interactions()
->mutable_trigger_event() ->add_trigger_event()
->mutable_on_view_container_cleared(); ->mutable_on_view_container_cleared();
on_view_container_cleared->set_view_identifier("view_${i}"); on_view_container_cleared->set_view_identifier("view_${i}");
auto* on_popup_dismissed = input.mutable_interactions() auto* on_popup_dismissed = input.mutable_interactions()
->add_interactions() ->add_interactions()
->mutable_trigger_event() ->add_trigger_event()
->mutable_on_popup_dismissed(); ->mutable_on_popup_dismissed();
on_popup_dismissed->set_popup_identifier("popup_${i}"); on_popup_dismissed->set_popup_identifier("popup_${i}");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment