summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sherry Huang <sherrhxr@google.com> 2024-11-04 22:17:01 -0800
committer Yixiao Luo <yixiaoluo@google.com> 2024-11-07 20:28:40 +0000
commit9f60fa896801827a27e4da4343592f906756025e (patch)
tree6ebcf6a7dcabe5c13d2593d29d5e19bc02d0651c
parent5f328f6649c50ab8be1e1d7507f9d31df65411de (diff)
TIF: Make constants and certain function SystemApi in TvInputServiceExtensionManager
Making constants defining standardized AIDL interfaces names and registerExtensionIBinder() SystemApi so that they would be accessible by OEMs and client apps on the system partition. Bug: b/330366987 Flag: android.media.tv.flags.tif_extension_standardization Test: atest TvInputManagerTest Change-Id: I13273d344b2fcc6ebfb4490339b8c5bf9ce131ef
-rw-r--r--core/api/system-current.txt20
-rw-r--r--media/java/android/media/tv/TvInputServiceExtensionManager.java37
2 files changed, 35 insertions, 22 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt
index 2a01ca082832..a7c5f32c967d 100644
--- a/core/api/system-current.txt
+++ b/core/api/system-current.txt
@@ -8232,6 +8232,26 @@ package android.media.tv {
method public void onSetMain(boolean);
}
+ @FlaggedApi("android.media.tv.flags.tif_extension_standardization") public final class TvInputServiceExtensionManager {
+ method @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE) public int registerExtensionIBinder(@NonNull String, @NonNull android.os.IBinder);
+ field public static final String IBROADCAST_TIME = "android.media.tv.extension.time.BroadcastTime";
+ field public static final String ICAM_APP_INFO_SERVICE = "android.media.tv.extension.cam.ICamAppInfoService";
+ field public static final String ICLIENT_TOKEN = "android.media.tv.extension.clienttoken.IClientToken";
+ field public static final String IDATA_SERVICE_SIGNAL_INFO = "android.media.tv.extension.teletext.IDataServiceSignalInfo";
+ field public static final String IEVENT_MONITOR = "android.media.tv.extension.event.IEventMonitor";
+ field public static final String IHDMI_SIGNAL_INTERFACE = "android.media.tv.extension.signal.IHdmiSignalInterface";
+ field public static final String IOAD_UPDATE_INTERFACE = "android.media.tv.extension.oad.IOadUpdateInterface";
+ field public static final String IRATING_INTERFACE = "android.media.tv.extension.rating.IRatingInterface";
+ field public static final String IRECORDED_CONTENTS = "android.media.tv.extension.pvr.IRecordedContents";
+ field public static final String ISCAN_INTERFACE = "android.media.tv.extension.scan.IScanInterface";
+ field public static final String ISCREEN_MODE_SETTINGS = "android.media.tv.extension.screenmode.IScreenModeSettings";
+ field public static final String ISERVICE_LIST_EDIT_LISTENER = "android.media.tv.extension.servicedb.IServiceListEditListener";
+ field public static final int REGISTER_FAIL_IMPLEMENTATION_NOT_STANDARDIZED = 2; // 0x2
+ field public static final int REGISTER_FAIL_NAME_NOT_STANDARDIZED = 1; // 0x1
+ field public static final int REGISTER_FAIL_REMOTE_EXCEPTION = 3; // 0x3
+ field public static final int REGISTER_SUCCESS = 0; // 0x0
+ }
+
public abstract static class TvRecordingClient.RecordingCallback {
method public void onEvent(String, String, android.os.Bundle);
}
diff --git a/media/java/android/media/tv/TvInputServiceExtensionManager.java b/media/java/android/media/tv/TvInputServiceExtensionManager.java
index c514f6ed04ef..9442726508c6 100644
--- a/media/java/android/media/tv/TvInputServiceExtensionManager.java
+++ b/media/java/android/media/tv/TvInputServiceExtensionManager.java
@@ -20,7 +20,9 @@ import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.annotation.RequiresPermission;
import android.annotation.StringDef;
+import android.annotation.SystemApi;
import android.media.tv.flags.Flags;
import android.os.IBinder;
import android.os.RemoteException;
@@ -43,6 +45,7 @@ import java.util.Set;
*
* @hide
*/
+@SystemApi
@FlaggedApi(Flags.FLAG_TIF_EXTENSION_STANDARDIZATION)
public final class TvInputServiceExtensionManager {
private static final String TAG = "TvInputServiceExtensionManager";
@@ -186,8 +189,7 @@ public final class TvInputServiceExtensionManager {
@Retention(RetentionPolicy.SOURCE)
public @interface StandardizedExtensionName {}
/**
- * Interface responsible for creating scan session and obtain parameters.
- * @hide
+ * Interface responsible for creating scan session and obtaining related parameters.
*/
public static final String ISCAN_INTERFACE = SCAN_PACKAGE + "IScanInterface";
/**
@@ -286,12 +288,10 @@ public final class TvInputServiceExtensionManager {
public static final String ISCAN_SAT_SEARCH = SCAN_PACKAGE + "IScanSatSearch";
/**
* Interface for Over-the-Air Download.
- * @hide
*/
public static final String IOAD_UPDATE_INTERFACE = OAD_PACKAGE + "IOadUpdateInterface";
/**
* Interface for handling conditional access module app related information.
- * @hide
*/
public static final String ICAM_APP_INFO_SERVICE = CAM_PACKAGE + "ICamAppInfoService";
/**
@@ -406,8 +406,7 @@ public final class TvInputServiceExtensionManager {
public static final String IDOWNLOADABLE_RATING_TABLE_MONITOR = RATING_PACKAGE
+ "IDownloadableRatingTableMonitor";
/**
- * Interface for handling RRT rating related information.
- * @hide
+ * Interface for handling Region Rating Table rating system related information.
*/
public static final String IRATING_INTERFACE = RATING_PACKAGE + "IRatingInterface";
/**
@@ -442,12 +441,10 @@ public final class TvInputServiceExtensionManager {
public static final String IPROGRAM_INFO_LISTENER = RATING_PACKAGE + "IProgramInfoListener";
/**
* Interface for getting broadcast time related information.
- * @hide
*/
public static final String IBROADCAST_TIME = TIME_PACKAGE + "BroadcastTime";
/**
* Interface for handling data service signal information on teletext.
- * @hide
*/
public static final String IDATA_SERVICE_SIGNAL_INFO = TELETEXT_PACKAGE
+ "IDataServiceSignalInfo";
@@ -476,17 +473,14 @@ public final class TvInputServiceExtensionManager {
+ "IScanBackgroundServiceUpdateListener";
/**
* Interface for generating client token.
- * @hide
*/
public static final String ICLIENT_TOKEN = CLIENT_TOKEN_PACKAGE + "IClientToken";
/**
* Interfaces for handling screen mode information.
- * @hide
*/
public static final String ISCREEN_MODE_SETTINGS = SCREEN_MODE_PACKAGE + "IScreenModeSettings";
/**
* Interfaces for handling HDMI signal information update.
- * @hide
*/
public static final String IHDMI_SIGNAL_INTERFACE = SIGNAL_PACKAGE + "IHdmiSignalInterface";
/**
@@ -529,7 +523,6 @@ public final class TvInputServiceExtensionManager {
public static final String ISERVICE_LIST_EDIT = SERVICE_DATABASE_PACKAGE + "IServiceListEdit";
/**
* Interfaces for changes on service database updates.
- * @hide
*/
public static final String ISERVICE_LIST_EDIT_LISTENER = SERVICE_DATABASE_PACKAGE
+ "IServiceListEditListener";
@@ -587,8 +580,7 @@ public final class TvInputServiceExtensionManager {
public static final String ICHANNEL_LIST_TRANSFER = SERVICE_DATABASE_PACKAGE
+ "IChannelListTransfer";
/**
- * Interfaces for record contents updates.
- * @hide
+ * Interface for operations related to recorded contents.
*/
public static final String IRECORDED_CONTENTS = PVR_PACKAGE + "IRecordedContents";
/**
@@ -605,7 +597,6 @@ public final class TvInputServiceExtensionManager {
+ "IGetInfoRecordedContentsCallback";
/**
* Interfaces for monitoring present event information.
- * @hide
*/
public static final String IEVENT_MONITOR = EVENT_PACKAGE + "IEventMonitor";
/**
@@ -784,20 +775,22 @@ public final class TvInputServiceExtensionManager {
}
/**
- * This function should be used by OEM to register IBinder objects that implement
- * standardized AIDL interfaces.
+ * Registers IBinder objects that implement standardized AIDL interfaces.
+ * <p>This function should be used by SoCs/OEMs
*
* @param extensionName Extension Interface Name
* @param binder IBinder object to be registered
- * @return REGISTER_SUCCESS on success of registering IBinder object
- * REGISTER_FAIL_NAME_NOT_STANDARDIZED on failure due to registering extension with
- * non-standardized name
- * REGISTER_FAIL_IMPLEMENTATION_NOT_STANDARDIZED on failure due to IBinder not
+ * @return {@link #REGISTER_SUCCESS} on success of registering IBinder object
+ * {@link #REGISTER_FAIL_NAME_NOT_STANDARDIZED} on failure due to registering extension
+ * with non-standardized name
+ * {@link #REGISTER_FAIL_IMPLEMENTATION_NOT_STANDARDIZED} on failure due to IBinder not
* implementing standardized AIDL interface
- * REGISTER_FAIL_REMOTE_EXCEPTION on failure due to remote exception
+ * {@link #REGISTER_FAIL_REMOTE_EXCEPTION} on failure due to remote exception
*
* @hide
*/
+ @SystemApi
+ @RequiresPermission(android.Manifest.permission.TV_INPUT_HARDWARE)
@RegisterResult
public int registerExtensionIBinder(@StandardizedExtensionName @NonNull String extensionName,
@NonNull IBinder binder) {