Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d08d4f2 authored by Kyeongkab.Nam's avatar Kyeongkab.Nam Committed by Nick Chalko
Browse files

TvProvider API standardization for ATSC3.0 and DVB

TvProvider API standardization and customization for Digital Tuner TV
Input support. (Programs.COLUMN_EVENT_ID, ProgramColumns.COLUMN_SPLIT_ID,
Programs.COLUMN_GLOBAL_CONTENT_ID, Channels.TYPE_ATSC3_T,
Channels.COLUMN_GLOBAL_CONTENT_ID)

Bug: 139424812
Bug: 139425741
Test: Manual
Change-Id: Idb4158cd2c9833ce9dd007de3b8fc5ccfe2a36b4
parent ae03bdf7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -27825,6 +27825,7 @@ package android.media.tv {
    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";
    field public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
    field public static final String COLUMN_INPUT_ID = "input_id";
    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
@@ -27850,6 +27851,7 @@ package android.media.tv {
    field public static final String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
    field public static final String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
    field public static final String TYPE_1SEG = "TYPE_1SEG";
    field public static final String TYPE_ATSC3_T = "TYPE_ATSC3_T";
    field public static final String TYPE_ATSC_C = "TYPE_ATSC_C";
    field public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
    field public static final String TYPE_ATSC_T = "TYPE_ATSC_T";
@@ -27943,6 +27945,7 @@ package android.media.tv {
    field public static final String COLUMN_SEASON_TITLE = "season_title";
    field public static final String COLUMN_SERIES_ID = "series_id";
    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
    field public static final String COLUMN_SPLIT_ID = "split_id";
    field public static final String COLUMN_STARTING_PRICE = "starting_price";
    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
@@ -27990,6 +27993,8 @@ package android.media.tv {
    field public static final String COLUMN_EPISODE_DISPLAY_NUMBER = "episode_display_number";
    field @Deprecated public static final String COLUMN_EPISODE_NUMBER = "episode_number";
    field public static final String COLUMN_EPISODE_TITLE = "episode_title";
    field public static final String COLUMN_EVENT_ID = "event_id";
    field public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";
    field public static final String COLUMN_INTERNAL_PROVIDER_DATA = "internal_provider_data";
    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG1 = "internal_provider_flag1";
    field public static final String COLUMN_INTERNAL_PROVIDER_FLAG2 = "internal_provider_flag2";
@@ -28006,6 +28011,7 @@ package android.media.tv {
    field public static final String COLUMN_SEASON_TITLE = "season_title";
    field public static final String COLUMN_SERIES_ID = "series_id";
    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
    field public static final String COLUMN_SPLIT_ID = "split_id";
    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
    field public static final String COLUMN_TITLE = "title";
@@ -28071,6 +28077,7 @@ package android.media.tv {
    field public static final String COLUMN_SEASON_TITLE = "season_title";
    field public static final String COLUMN_SERIES_ID = "series_id";
    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
    field public static final String COLUMN_SPLIT_ID = "split_id";
    field public static final String COLUMN_START_TIME_UTC_MILLIS = "start_time_utc_millis";
    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
    field public static final String COLUMN_TITLE = "title";
@@ -28131,6 +28138,7 @@ package android.media.tv {
    field public static final String COLUMN_SEASON_TITLE = "season_title";
    field public static final String COLUMN_SERIES_ID = "series_id";
    field public static final String COLUMN_SHORT_DESCRIPTION = "short_description";
    field public static final String COLUMN_SPLIT_ID = "split_id";
    field public static final String COLUMN_STARTING_PRICE = "starting_price";
    field public static final String COLUMN_THUMBNAIL_ASPECT_RATIO = "poster_thumbnail_aspect_ratio";
    field public static final String COLUMN_THUMBNAIL_URI = "thumbnail_uri";
+74 −0
Original line number Diff line number Diff line
@@ -1109,6 +1109,24 @@ public final class TvContract {
         * <p>Type: TEXT
         */
        String COLUMN_SERIES_ID = "series_id";

        /**
         * The split ID of this TV program for multi-part content, as a URI.
         *
         * <p>A content may consist of multiple programs within the same channel or over several
         * channels. For example, a film might be divided into two parts interrupted by a news in
         * the middle or a longer sport event might be split into several parts over several
         * channels. The split ID is used to identify all the programs in the same multi-part
         * content. Suitable URIs include
         * <ul>
         * <li>{@code crid://<CRIDauthority>/<data>#<IMI>} from ETSI TS 102 323
         * </ul>
         *
         * <p>Can be empty.
         *
         * <p>Type: TEXT
         */
        String COLUMN_SPLIT_ID = "split_id";
    }

    /**
@@ -1677,6 +1695,7 @@ public final class TvContract {
                TYPE_ATSC_T,
                TYPE_ATSC_C,
                TYPE_ATSC_M_H,
                TYPE_ATSC3_T,
                TYPE_ISDB_T,
                TYPE_ISDB_TB,
                TYPE_ISDB_S,
@@ -1800,6 +1819,13 @@ public final class TvContract {
         */
        public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";

        /**
         * The channel type for ATSC3.0 (terrestrial).
         *
         * @see #COLUMN_TYPE
         */
        public static final String TYPE_ATSC3_T = "TYPE_ATSC3_T";

        /**
         * The channel type for ISDB-T (terrestrial).
         *
@@ -2022,6 +2048,7 @@ public final class TvContract {
         * {@link #TYPE_ATSC_C},
         * {@link #TYPE_ATSC_M_H},
         * {@link #TYPE_ATSC_T},
         * {@link #TYPE_ATSC3_T},
         * {@link #TYPE_CMMB},
         * {@link #TYPE_DTMB},
         * {@link #TYPE_DVB_C},
@@ -2407,6 +2434,22 @@ public final class TvContract {
         */
        public static final String COLUMN_TRANSIENT = "transient";

        /**
         * The global content ID of this TV channel, as a URI.
         *
         * <p>A globally unique URI that identifies this TV channel, if applicable. Suitable URIs
         * include
         * <ul>
         * <li>{@code globalServiceId} from ATSC A/331. ex {@code https://doi.org/10.5239/7E4E-B472}
         * <li>Other broadcast ID provider. ex {@code http://example.com/tv_channel/1234}
         * </ul>
         *
         * <p>Can be empty.
         *
         * <p>Type: TEXT
         */
        public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";

        private Channels() {}

        /**
@@ -2562,6 +2605,37 @@ public final class TvContract {
         */
        public static final String COLUMN_RECORDING_PROHIBITED = "recording_prohibited";

        /**
         * The event ID of this TV program.
         *
         * <p>It is used to identify the current TV program in the same channel, if applicable.
         * Use the same coding for {@code event_id} in the underlying broadcast standard if it
         * is defined there (e.g. ATSC A/65, ETSI EN 300 468 and ARIB STD-B10).
         *
         * <p>This is a required field only if the underlying broadcast standard defines the same
         * name field. Otherwise, leave empty.
         *
         * <p>Type: INTEGER
         */
        public static final String COLUMN_EVENT_ID = "event_id";

        /**
         * The global content ID of this TV program, as a URI.
         *
         * <p>A globally unique ID that identifies this TV program, if applicable. Suitable URIs
         * include
         * <ul>
         * <li>{@code crid://<CRIDauthority>/<data>} from ETSI TS 102 323
         * <li>{@code globalContentId} from ATSC A/332
         * <li>Other broadcast ID provider. ex {@code http://example.com/tv_program/1234}
         * </ul>
         *
         * <p>Can be empty.
         *
         * <p>Type: TEXT
         */
        public static final String COLUMN_GLOBAL_CONTENT_ID = "global_content_id";

        private Programs() {}

        /** Canonical genres for TV programs. */