Change VENDOR program types to range.

Bug: b/64331420
Test: instrumentation
Change-Id: If5c56f09e2b9e272a40f0ca074a590ca6ec3a703
diff --git a/api/system-current.txt b/api/system-current.txt
index e2754fd..d2043fa 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -17249,10 +17249,8 @@
     field public static final int IDENTIFIER_TYPE_RDS_PI = 2; // 0x2
     field public static final int IDENTIFIER_TYPE_SXM_CHANNEL = 13; // 0xd
     field public static final int IDENTIFIER_TYPE_SXM_SERVICE_ID = 12; // 0xc
-    field public static final int IDENTIFIER_TYPE_VENDOR1_PRIMARY = 14; // 0xe
-    field public static final int IDENTIFIER_TYPE_VENDOR2_PRIMARY = 15; // 0xf
-    field public static final int IDENTIFIER_TYPE_VENDOR3_PRIMARY = 16; // 0x10
-    field public static final int IDENTIFIER_TYPE_VENDOR4_PRIMARY = 17; // 0x11
+    field public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_END = 1999; // 0x7cf
+    field public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_START = 1000; // 0x3e8
     field public static final int PROGRAM_TYPE_AM = 1; // 0x1
     field public static final int PROGRAM_TYPE_AM_HD = 3; // 0x3
     field public static final int PROGRAM_TYPE_DAB = 5; // 0x5
@@ -17260,10 +17258,8 @@
     field public static final int PROGRAM_TYPE_FM = 2; // 0x2
     field public static final int PROGRAM_TYPE_FM_HD = 4; // 0x4
     field public static final int PROGRAM_TYPE_SXM = 7; // 0x7
-    field public static final int PROGRAM_TYPE_VENDOR1 = 8; // 0x8
-    field public static final int PROGRAM_TYPE_VENDOR2 = 9; // 0x9
-    field public static final int PROGRAM_TYPE_VENDOR3 = 10; // 0xa
-    field public static final int PROGRAM_TYPE_VENDOR4 = 11; // 0xb
+    field public static final int PROGRAM_TYPE_VENDOR_END = 1999; // 0x7cf
+    field public static final int PROGRAM_TYPE_VENDOR_START = 1000; // 0x3e8
   }
 
   public static final class ProgramSelector.Identifier implements android.os.Parcelable {
diff --git a/core/java/android/hardware/radio/ProgramSelector.java b/core/java/android/hardware/radio/ProgramSelector.java
index 94c25b3..2211cee 100644
--- a/core/java/android/hardware/radio/ProgramSelector.java
+++ b/core/java/android/hardware/radio/ProgramSelector.java
@@ -17,6 +17,7 @@
 package android.hardware.radio;
 
 import android.annotation.IntDef;
+import android.annotation.IntRange;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
@@ -73,10 +74,8 @@
     /** SiriusXM Satellite Radio. */
     public static final int PROGRAM_TYPE_SXM = 7;
     /** Vendor-specific, not synced across devices. */
-    public static final int PROGRAM_TYPE_VENDOR1 = 8;
-    public static final int PROGRAM_TYPE_VENDOR2 = 9;
-    public static final int PROGRAM_TYPE_VENDOR3 = 10;
-    public static final int PROGRAM_TYPE_VENDOR4 = 11;
+    public static final int PROGRAM_TYPE_VENDOR_START = 1000;
+    public static final int PROGRAM_TYPE_VENDOR_END = 1999;
     @IntDef(prefix = { "PROGRAM_TYPE_" }, value = {
         PROGRAM_TYPE_AM,
         PROGRAM_TYPE_FM,
@@ -85,11 +84,8 @@
         PROGRAM_TYPE_DAB,
         PROGRAM_TYPE_DRMO,
         PROGRAM_TYPE_SXM,
-        PROGRAM_TYPE_VENDOR1,
-        PROGRAM_TYPE_VENDOR2,
-        PROGRAM_TYPE_VENDOR3,
-        PROGRAM_TYPE_VENDOR4,
     })
+    @IntRange(from = PROGRAM_TYPE_VENDOR_START, to = PROGRAM_TYPE_VENDOR_END)
     @Retention(RetentionPolicy.SOURCE)
     public @interface ProgramType {}
 
@@ -145,12 +141,12 @@
      * Primary identifier for vendor-specific radio technology.
      * The value format is determined by a vendor.
      *
-     * It must not be used in any other programType than VENDORx.
+     * It must not be used in any other programType than corresponding VENDOR
+     * type between VENDOR_START and VENDOR_END (eg. identifier type 1015 must
+     * not be used in any program type other than 1015).
      */
-    public static final int IDENTIFIER_TYPE_VENDOR1_PRIMARY = 14;
-    public static final int IDENTIFIER_TYPE_VENDOR2_PRIMARY = 15;
-    public static final int IDENTIFIER_TYPE_VENDOR3_PRIMARY = 16;
-    public static final int IDENTIFIER_TYPE_VENDOR4_PRIMARY = 17;
+    public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_START = PROGRAM_TYPE_VENDOR_START;
+    public static final int IDENTIFIER_TYPE_VENDOR_PRIMARY_END = PROGRAM_TYPE_VENDOR_END;
     @IntDef(prefix = { "IDENTIFIER_TYPE_" }, value = {
         IDENTIFIER_TYPE_AMFM_FREQUENCY,
         IDENTIFIER_TYPE_RDS_PI,
@@ -165,11 +161,8 @@
         IDENTIFIER_TYPE_DRMO_MODULATION,
         IDENTIFIER_TYPE_SXM_SERVICE_ID,
         IDENTIFIER_TYPE_SXM_CHANNEL,
-        IDENTIFIER_TYPE_VENDOR1_PRIMARY,
-        IDENTIFIER_TYPE_VENDOR2_PRIMARY,
-        IDENTIFIER_TYPE_VENDOR3_PRIMARY,
-        IDENTIFIER_TYPE_VENDOR4_PRIMARY,
     })
+    @IntRange(from = IDENTIFIER_TYPE_VENDOR_PRIMARY_START, to = IDENTIFIER_TYPE_VENDOR_PRIMARY_END)
     @Retention(RetentionPolicy.SOURCE)
     public @interface IdentifierType {}