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));