Adding capability for sending carousels.
PiperOrigin-RevId: 244258653
Change-Id: I69ba9507c25886fdc7163f8ce10460abee0d128b
diff --git a/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImpl.java b/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImpl.java
index 366084a..05ec031 100644
--- a/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImpl.java
+++ b/src/main/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImpl.java
@@ -398,6 +398,8 @@
feedRequestBuilder, ConfigKey.UNDOABLE_ACTIONS_ENABLED, Capability.UNDOABLE_ACTIONS);
addCapabilityIfConfigEnabled(
feedRequestBuilder, ConfigKey.MANAGE_INTERESTS_ENABLED, Capability.MANAGE_INTERESTS);
+ addCapabilityIfConfigEnabled(
+ feedRequestBuilder, ConfigKey.ENABLE_CAROUSELS, Capability.CAROUSELS);
if (cardMenuTooltipWouldTrigger) {
addCapabilityIfConfigEnabled(
feedRequestBuilder, ConfigKey.CARD_MENU_TOOLTIP_ELIGIBLE, Capability.CARD_MENU_TOOLTIP);
diff --git a/src/main/java/com/google/android/libraries/feed/host/config/Configuration.java b/src/main/java/com/google/android/libraries/feed/host/config/Configuration.java
index bd6a63f..6042184 100644
--- a/src/main/java/com/google/android/libraries/feed/host/config/Configuration.java
+++ b/src/main/java/com/google/android/libraries/feed/host/config/Configuration.java
@@ -90,6 +90,8 @@
ConfigKey.FEED_ACTION_MAX_UPLOAD_ATTEMPTS,
// Ttl of an action that has failed to be uploaded.
ConfigKey.FEED_ACTION_TTL_SECONDS,
+ // When enabled, will ask server to add carousels in response.
+ ConfigKey.ENABLE_CAROUSELS,
})
public @interface ConfigKey {
String ABANDON_RESTORE_BELOW_FOLD = "abandon_restore_below_fold";
@@ -130,6 +132,7 @@
String FEED_ACTION_SERVER_MAX_SIZE_PER_REQUEST = "feed_action_server_max_size_per_request";
String FEED_ACTION_MAX_UPLOAD_ATTEMPTS = "feed_action_max_upload_attempts";
String FEED_ACTION_TTL_SECONDS = "feed_action_ttl_seconds";
+ String ENABLE_CAROUSELS = "enable_carousels";
}
private final HashMap<String, Object> values;
diff --git a/src/main/proto/search/now/wire/feed/capability.proto b/src/main/proto/search/now/wire/feed/capability.proto
index b21259c..baf34d0 100644
--- a/src/main/proto/search/now/wire/feed/capability.proto
+++ b/src/main/proto/search/now/wire/feed/capability.proto
@@ -22,7 +22,7 @@
option java_outer_classname = "CapabilityProto";
// Feature capability of either the client or the server.
-// Next ID: 9.
+// Next ID: 10.
enum Capability {
UNKNOWN_CAPABILITY = 0;
BASE_UI = 1;
@@ -32,6 +32,7 @@
CARD_MENU_TOOLTIP = 6;
USE_SECONDARY_PAGE_REQUEST = 7;
ARTICLE_SNIPPETS = 8;
+ CAROUSELS = 9;
reserved 3;
}
diff --git a/src/test/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImplTest.java b/src/test/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImplTest.java
index a9bf9ce..abc5f8a 100644
--- a/src/test/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImplTest.java
+++ b/src/test/java/com/google/android/libraries/feed/feedrequestmanager/FeedRequestManagerImplTest.java
@@ -247,6 +247,11 @@
}
@Test
+ public void testTriggerRefresh_enableCarouselsAdded() throws Exception {
+ testCapabilityAdded(ConfigKey.ENABLE_CAROUSELS, Capability.CAROUSELS);
+ }
+
+ @Test
public void testActionData_simpleDismiss() throws Exception {
fakeActionReader.addDismissActionsWithSemanticProperties(
buildDismissAction(ID, CONTENT_DOMAIN, TABLE, null));