From f56193551f84fcb3db2a2df0d303b92e26bb8b67 Mon Sep 17 00:00:00 2001 From: "Junichiro.Homma" Date: Fri, 23 Oct 2020 13:55:55 +0900 Subject: TvProvider API standardization for ARIB and DVB TvProvider API standardization and customization for Digital Tuner TV Input support. (Channels.COLUMN_COLUMN_REMOTE_CONTROL_KEY_PRESET_NUMBER, Channels.COLUMN_SCRAMBLED, Channels.COLUMN_VIDEO_RESOLUTION, Channels.COLUMN_CHANNEL_LIST_ID, Channels.COLUMN_BROADCAST_GENRE) Bug: 158236748 Test: Manual - confirm tv.db Change-Id: Id0003b7312327de42a18352a7868eaaa3c1ebcc4 --- core/api/current.txt | 5 +++ media/java/android/media/tv/TvContract.java | 65 +++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index a20b58efb53f..9af1eff00273 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -28685,7 +28685,9 @@ package android.media.tv { field public static final String COLUMN_APP_LINK_INTENT_URI = "app_link_intent_uri"; field public static final String COLUMN_APP_LINK_POSTER_ART_URI = "app_link_poster_art_uri"; field public static final String COLUMN_APP_LINK_TEXT = "app_link_text"; + field public static final String COLUMN_BROADCAST_GENRE = "broadcast_genre"; field public static final String COLUMN_BROWSABLE = "browsable"; + field public static final String COLUMN_CHANNEL_LIST_ID = "channel_list_id"; field public static final String COLUMN_DESCRIPTION = "description"; field public static final String COLUMN_DISPLAY_NAME = "display_name"; field public static final String COLUMN_DISPLAY_NUMBER = "display_number"; @@ -28700,6 +28702,8 @@ package android.media.tv { field public static final String COLUMN_LOCKED = "locked"; field public static final String COLUMN_NETWORK_AFFILIATION = "network_affiliation"; field public static final String COLUMN_ORIGINAL_NETWORK_ID = "original_network_id"; + field public static final String COLUMN_REMOTE_CONTROL_KEY_PRESET_NUMBER = "remote_control_key_preset_number"; + field public static final String COLUMN_SCRAMBLED = "scrambled"; field public static final String COLUMN_SEARCHABLE = "searchable"; field public static final String COLUMN_SERVICE_ID = "service_id"; field public static final String COLUMN_SERVICE_TYPE = "service_type"; @@ -28708,6 +28712,7 @@ package android.media.tv { field public static final String COLUMN_TYPE = "type"; field public static final String COLUMN_VERSION_NUMBER = "version_number"; field public static final String COLUMN_VIDEO_FORMAT = "video_format"; + field public static final String COLUMN_VIDEO_RESOLUTION = "video_resolution"; field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel"; field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/channel"; field public static final android.net.Uri CONTENT_URI; diff --git a/media/java/android/media/tv/TvContract.java b/media/java/android/media/tv/TvContract.java index 433c6227cd5f..30a14c84b72e 100644 --- a/media/java/android/media/tv/TvContract.java +++ b/media/java/android/media/tv/TvContract.java @@ -2450,6 +2450,71 @@ public final class TvContract { */ public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id"; + /** + * The remote control key preset number that is assigned to this channel. + * + *

This can be used for one-touch-tuning, tuning to the channel with + * pressing the preset button. + * + *

Type: INTEGER (remote control key preset number) + */ + public static final String COLUMN_REMOTE_CONTROL_KEY_PRESET_NUMBER = + "remote_control_key_preset_number"; + + /** + * The flag indicating whether this TV channel is scrambled or not. + * + *

Use the same coding for scrambled in the underlying broadcast standard + * if {@code free_ca_mode} in SDT is defined there (e.g. ETSI EN 300 468). + * + *

Type: INTEGER (boolean) + */ + public static final String COLUMN_SCRAMBLED = "scrambled"; + + /** + * The typical video resolution. + * + *

This is primarily used to filter out channels based on video resolution + * by applications. The value is from SDT if defined there. (e.g. ETSI EN 300 468) + * The value should match one of the followings: {@link #VIDEO_RESOLUTION_SD}, + * {@link #VIDEO_RESOLUTION_HD}, {@link #VIDEO_RESOLUTION_UHD}. + * + *

Type: TEXT + * + */ + public static final String COLUMN_VIDEO_RESOLUTION = "video_resolution"; + + /** + * The channel list ID of this TV channel. + * + *

It is used to identify the channel list constructed from broadcast SI based on the + * underlying broadcast standard or country/operator profile, if applicable. Otherwise, + * leave empty. + * + *

The ID can be defined by individual TV input services. For example, one may assign a + * service operator name for the service operator channel list constructed from broadcast + * SI or one may assign the {@code profile_name} of the operator_info() APDU defined in CI + * Plus 1.3 for the dedicated CICAM operator profile channel list constructed + * from CICAM NIT. + * + *

Type: TEXT + */ + public static final String COLUMN_CHANNEL_LIST_ID = "channel_list_id"; + + /** + * The comma-separated genre string of this TV channel. + * + *

Use the same language appeared in the underlying broadcast standard, if applicable. + * Otherwise, leave empty. Use + * {@link Genres#encode Genres.encode()} to create a text that can be stored in this column. + * Use {@link Genres#decode Genres.decode()} to get the broadcast genre strings from the + * text stored in the column. + * + *

Type: TEXT + * @see Programs#COLUMN_BROADCAST_GENRE + */ + public static final String COLUMN_BROADCAST_GENRE = Programs.COLUMN_BROADCAST_GENRE; + private Channels() {} /** -- cgit v1.2.3-59-g8ed1b