[WebView Support Library] add WebSettingsCompat#MenuItemFlags annotation

To guard values passed into
WebSettingsCompat.set/getDisabledActionModeMenuItems() we create a new
annotation similar to WebSettings#MenuItemFlags.
We cannot reuse the existing annotation since it is hidden within the
framework.

Bug: 73454029
Test: run androidx.webkit tests.
Change-Id: I57c0d1db7d77d47fd2d12b9023d3928c664c0390
diff --git a/webkit/src/main/java/androidx/webkit/WebSettingsCompat.java b/webkit/src/main/java/androidx/webkit/WebSettingsCompat.java
index c73cda6..12d7e63 100644
--- a/webkit/src/main/java/androidx/webkit/WebSettingsCompat.java
+++ b/webkit/src/main/java/androidx/webkit/WebSettingsCompat.java
@@ -19,6 +19,13 @@
 import android.os.Build;
 import android.webkit.WebSettings;
 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import androidx.annotation.IntDef;
+import androidx.annotation.RestrictTo;
 import androidx.webkit.internal.WebSettingsAdapter;
 import androidx.webkit.internal.WebViewGlueCommunicator;
 
@@ -102,10 +109,25 @@
     }
 
     /**
+     * @hide
+     */
+    @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+    @IntDef(flag = true, value = {
+            WebSettings.MENU_ITEM_NONE,
+            WebSettings.MENU_ITEM_SHARE,
+            WebSettings.MENU_ITEM_WEB_SEARCH,
+            WebSettings.MENU_ITEM_PROCESS_TEXT
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @Target({ElementType.PARAMETER, ElementType.METHOD})
+    public @interface MenuItemFlags {}
+
+    /**
      * Disables the action mode menu items according to {@code menuItems} flag.
      * @param menuItems an integer field flag for the menu items to be disabled.
      */
-    public static void setDisabledActionModeMenuItems(WebSettings webSettings, int menuItems) {
+    public static void setDisabledActionModeMenuItems(WebSettings webSettings,
+            @MenuItemFlags int menuItems) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
             webSettings.setDisabledActionModeMenuItems(menuItems);
         } else {
@@ -119,7 +141,7 @@
      *
      * @return all the disabled menu item flags combined with bitwise OR.
      */
-    public static int getDisabledActionModeMenuItems(WebSettings webSettings) {
+    public static @MenuItemFlags int getDisabledActionModeMenuItems(WebSettings webSettings) {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
             return webSettings.getDisabledActionModeMenuItems();
         } else {