Add tuner version 4.0 constant

Flag: android.media.tv.flags.tuner_w_apis
Bug: 320419647
Test: atest android.media.tv.tuner.cts.TunerTest on cf_x86_tv
Change-Id: I71492f05b39d3fabd3629d417fe45a41b3e45bc5
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index 59a7cbc..b4127c5 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -691,7 +691,7 @@
     exportable: true,
     package: "android.media.tv.flags",
     container: "system",
-    srcs: ["media/java/android/media/tv/flags/media_tv.aconfig"],
+    srcs: ["media/java/android/media/tv/flags/*.aconfig"],
 }
 
 java_aconfig_library {
diff --git a/Android.bp b/Android.bp
index af205d8..f8907f3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -109,7 +109,7 @@
         ":android.hardware.security.keymint-V3-java-source",
         ":android.hardware.security.secureclock-V1-java-source",
         ":android.hardware.thermal-V2-java-source",
-        ":android.hardware.tv.tuner-V2-java-source",
+        ":android.hardware.tv.tuner-V3-java-source",
         ":android.security.apc-java-source",
         ":android.security.authorization-java-source",
         ":android.security.legacykeystore-java-source",
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index fe792bc..df01aa8 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -8140,6 +8140,7 @@
     field public static final int TUNER_VERSION_1_1 = 65537; // 0x10001
     field public static final int TUNER_VERSION_2_0 = 131072; // 0x20000
     field public static final int TUNER_VERSION_3_0 = 196608; // 0x30000
+    field @FlaggedApi("android.media.tv.flags.tuner_w_apis") public static final int TUNER_VERSION_4_0 = 262144; // 0x40000
     field public static final int TUNER_VERSION_UNKNOWN = 0; // 0x0
   }
 
diff --git a/media/java/android/media/tv/flags/media_tv.aconfig b/media/java/android/media/tv/flags/media_tv.aconfig
index d6e9e4e..0829a90e 100644
--- a/media/java/android/media/tv/flags/media_tv.aconfig
+++ b/media/java/android/media/tv/flags/media_tv.aconfig
@@ -39,4 +39,12 @@
     namespace: "media_tv"
     description: "Performance and Storage Optimization in Google TV Kids Mode."
     bug: "288383796"
-}
\ No newline at end of file
+}
+
+flag {
+    name: "tuner_w_apis"
+    is_exported: true
+    namespace: "media_tv"
+    description: "Tuner V4.0 APIs for Android W"
+    bug: "320419647"
+}
diff --git a/media/java/android/media/tv/tuner/TunerVersionChecker.java b/media/java/android/media/tv/tuner/TunerVersionChecker.java
index f29a93c..a7c0415 100644
--- a/media/java/android/media/tv/tuner/TunerVersionChecker.java
+++ b/media/java/android/media/tv/tuner/TunerVersionChecker.java
@@ -16,9 +16,11 @@
 
 package android.media.tv.tuner;
 
+import android.annotation.FlaggedApi;
 import android.annotation.IntDef;
 import android.annotation.SystemApi;
 import android.annotation.TestApi;
+import android.media.tv.flags.Flags;
 import android.util.Log;
 
 import java.lang.annotation.Retention;
@@ -40,7 +42,7 @@
     /** @hide */
     @IntDef(prefix = "TUNER_VERSION_",
             value = {TUNER_VERSION_UNKNOWN, TUNER_VERSION_1_0, TUNER_VERSION_1_1,
-                    TUNER_VERSION_2_0})
+                    TUNER_VERSION_2_0, TUNER_VERSION_3_0, TUNER_VERSION_4_0})
     @Retention(RetentionPolicy.SOURCE)
     public @interface TunerVersion {}
     /**
@@ -63,6 +65,11 @@
      * Tuner version 3.0.
      */
     public static final int TUNER_VERSION_3_0 = (3 << 16);
+    /**
+     * Tuner version 4.0.
+     */
+    @FlaggedApi(Flags.FLAG_TUNER_W_APIS)
+    public static final int TUNER_VERSION_4_0 = (4 << 16);
 
     /**
      * Get the current running Tuner version.
diff --git a/media/jni/Android.bp b/media/jni/Android.bp
index 7f487e5..c44e26f 100644
--- a/media/jni/Android.bp
+++ b/media/jni/Android.bp
@@ -92,7 +92,7 @@
         "android.hidl.memory@1.0",
         "android.hidl.token@1.0-utils",
         "android.hardware.drm-V1-ndk",
-        "android.hardware.tv.tuner-V2-ndk",
+        "android.hardware.tv.tuner-V3-ndk",
     ],
 
     header_libs: [
@@ -180,7 +180,7 @@
 
     shared_libs: [
         "android.hardware.graphics.bufferqueue@2.0",
-        "android.hardware.tv.tuner-V2-ndk",
+        "android.hardware.tv.tuner-V3-ndk",
         "libbinder_ndk",
         "libandroid_runtime",
         "libcutils",