1e16873467cda89d905027458e2664c759465d463Sungsoo Lim/* 2e16873467cda89d905027458e2664c759465d463Sungsoo Lim * Copyright (C) 2014 The Android Open Source Project 3e16873467cda89d905027458e2664c759465d463Sungsoo Lim * 4e16873467cda89d905027458e2664c759465d463Sungsoo Lim * Licensed under the Apache License, Version 2.0 (the "License"); 5e16873467cda89d905027458e2664c759465d463Sungsoo Lim * you may not use this file except in compliance with the License. 6e16873467cda89d905027458e2664c759465d463Sungsoo Lim * You may obtain a copy of the License at 7e16873467cda89d905027458e2664c759465d463Sungsoo Lim * 8e16873467cda89d905027458e2664c759465d463Sungsoo Lim * http://www.apache.org/licenses/LICENSE-2.0 9e16873467cda89d905027458e2664c759465d463Sungsoo Lim * 10e16873467cda89d905027458e2664c759465d463Sungsoo Lim * Unless required by applicable law or agreed to in writing, software 11e16873467cda89d905027458e2664c759465d463Sungsoo Lim * distributed under the License is distributed on an "AS IS" BASIS, 12e16873467cda89d905027458e2664c759465d463Sungsoo Lim * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e16873467cda89d905027458e2664c759465d463Sungsoo Lim * See the License for the specific language governing permissions and 14e16873467cda89d905027458e2664c759465d463Sungsoo Lim * limitations under the License. 15e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 16e16873467cda89d905027458e2664c759465d463Sungsoo Lim 17e16873467cda89d905027458e2664c759465d463Sungsoo Limpackage android.media.tv; 18e16873467cda89d905027458e2664c759465d463Sungsoo Lim 196057102dbb746593a7d59cf377c969b62e38c664Jae Seoimport android.annotation.SystemApi; 20e16873467cda89d905027458e2664c759465d463Sungsoo Limimport android.text.TextUtils; 21e16873467cda89d905027458e2664c759465d463Sungsoo Lim 22e16873467cda89d905027458e2664c759465d463Sungsoo Limimport java.util.Arrays; 236057102dbb746593a7d59cf377c969b62e38c664Jae Seoimport java.util.Collections; 24e16873467cda89d905027458e2664c759465d463Sungsoo Limimport java.util.List; 251681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Limimport java.util.Objects; 26e16873467cda89d905027458e2664c759465d463Sungsoo Lim 27e16873467cda89d905027458e2664c759465d463Sungsoo Lim/** 28ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * A class representing a TV content rating. When a TV input service inserts the content rating 29ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * information on a program into the database, this class can be used to generate the formatted 30ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * string for 31ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@link TvContract.Programs#COLUMN_CONTENT_RATING TvContract.Programs.COLUMN_CONTENT_RATING}. 32ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * To create a {@code TvContentRating} object, use the 33ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@link #createRating TvContentRating.createRating} method with valid rating system string 34ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * constants. 35ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <p> 369c165d6e9a2f085fbdc87b9221f2d52d851b2652Jae Seo * It is possible for an application to define its own content rating system by supplying a content 379c165d6e9a2f085fbdc87b9221f2d52d851b2652Jae Seo * rating system definition XML resource (see example below) and declaring a broadcast receiver that 389c165d6e9a2f085fbdc87b9221f2d52d851b2652Jae Seo * filters {@link TvInputManager#ACTION_QUERY_CONTENT_RATING_SYSTEMS} in its manifest. 39ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * </p> 40fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * <h3> Example: Rating system definition for the TV Parental Guidelines</h3> 41ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * The following XML example shows how the TV Parental Guidelines in the United States can be 42ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * defined: 435c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <p><pre class="prettyprint"> 44fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * {@literal 4514355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-system-definitions xmlns:android="http://schemas.android.com/apk/res/android" 4614355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:versionCode="1"> 4714355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-system-definition android:name="US_TV" 480a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:country="US" 490a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv"> 5014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating-definition android:name="US_TV_D" 5114355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="D" 520a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_d" /> 5314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating-definition android:name="US_TV_L" 5414355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="L" 550a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_l" /> 5614355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating-definition android:name="US_TV_S" 5714355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="S" 580a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_s" /> 5914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating-definition android:name="US_TV_V" 6014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="V" 610a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_v" /> 6214355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating-definition android:name="US_TV_FV" 6314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="FV" 640a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_fv" /> 65fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * 6614355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_Y" 6714355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-Y" 680a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_y" 690a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_y" 700a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="0" /> 7114355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_Y7" 7214355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-Y7" 730a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_y7" 740a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_y7" 750a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="7"> 7614355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_FV" /> 77fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-definition> 7814355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_G" 7914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-G" 800a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_g" 810a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_g" 820a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="0" /> 8314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_PG" 8414355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-PG" 850a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_pg" 860a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_pg" 870a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="14"> 8814355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_D" /> 8914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_L" /> 9014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_S" /> 9114355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_V" /> 92fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-definition> 9314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_14" 9414355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-14" 950a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_14" 960a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_14" 970a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="14"> 9814355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_D" /> 9914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_L" /> 10014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_S" /> 10114355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_V" /> 102fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-definition> 10314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-definition android:name="US_TV_MA" 10414355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * android:title="TV-MA" 1050a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:description="@string/description_us_tv_ma" 1060a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:icon="@drawable/icon_us_tv_ma" 1070a514c0a87fe3f3a7a8ed973f68c2fc23d242bafJae Seo * android:contentAgeHint="17"> 10814355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_L" /> 10914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_S" /> 11014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <sub-rating android:name="US_TV_V" /> 111fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-definition> 11214355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-order> 11314355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_Y" /> 11414355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_Y7" /> 11514355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * </rating-order> 11614355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating-order> 11714355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_G" /> 11814355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_PG" /> 11914355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_14" /> 12014355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * <rating android:name="US_TV_MA" /> 12114355950d5ce42b8043cfb96d192f1c76b93d496Jae Seo * </rating-order> 122fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-system-definition> 123fc27d6db089d25ab752c0445016fd07760c345f8Jae Seo * </rating-system-definitions>}</pre></p> 1245c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * 1255c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <h3>System defined rating strings</h3> 126ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * The following strings are defined by the system to provide a standard way to create 127ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@code TvContentRating} objects. 128ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <p>For example, to create an object that represents TV-PG rating with suggestive dialogue and 129ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * coarse language from the TV Parental Guidelines in the United States, one can use the following 130ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * code snippet: 131ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * </p> 132ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <pre> 133b417c9d0e2819e1108b2c3e8dd7c8ea8eae57e6fJae Seo * TvContentRating rating = TvContentRating.createRating( 134ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * "com.android.tv", 135ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * "US_TV", 136ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * "US_TV_PG", 137ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * "US_TV_D", "US_TV_L"); 138ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * </pre> 139ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <h4>System defined string for domains</h4> 140ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <table> 141ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <tr> 142ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Constant Value</th> 14351374011a85e7f5860766c4f56cd73ff39e77528Andrew Jeon * <th>Description</th> 144ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * </tr> 145ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <tr> 146ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <td>com.android.tv</td> 1475c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <td>Used for creating system defined content ratings</td> 1485c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 1495c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </table> 15098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * 151ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <h4>System defined strings for rating systems</h4> 152ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <table> 1535c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 154ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Constant Value</th> 15551374011a85e7f5860766c4f56cd73ff39e77528Andrew Jeon * <th>Description</th> 1565c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 15798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 158e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>AR_TV</td> 1591d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>TV content rating system for Argentina</td> 16098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 1611fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 162e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>AU_TV</td> 1631d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>TV content rating system for Australia</td> 1641fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 16598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 166e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>BR_TV</td> 1671d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>TV content rating system for Brazil</td> 16898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 16998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 170d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB</td> 171d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB content rating system</td> 17298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 17398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 174d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB</td> 175d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB content rating system for Spain</td> 17698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 17798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 178d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB</td> 179d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB content rating system for France</td> 18098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 18198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 182d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB</td> 183d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB content rating system</td> 184fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * </tr> 185fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * <tr> 1865c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <td>KR_TV</td> 1871d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>TV content rating system for South Korea</td> 1885c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 18998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 1903652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV</td> 1911d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>TV content rating system for Singapore</td> 19298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 19398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 1941d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV</td> 195ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <td>TV content rating system for the United States</td> 196e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * </tr> 1975c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </table> 1985c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * 199ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <h4>System defined strings for ratings</h4> 200ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <table> 2015c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 202ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Rating System</th> 203ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Constant Value</th> 20451374011a85e7f5860766c4f56cd73ff39e77528Andrew Jeon * <th>Description</th> 2055c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 20698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 2071d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td valign="top" rowspan="4">AR_TV</td> 208d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AR_TV_ATP</td> 20998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Suitable for all audiences. Programs may contain mild violence, language and mature 2101d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * situations</td> 21198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 21298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 213d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AR_TV_SAM_13</td> 21498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Suitable for ages 13 and up. Programs may contain mild to moderate language and mild 2151d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * violence and sexual references</td> 21698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 21798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 218d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AR_TV_SAM_16</td> 21998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Suitable for ages 16 and up. Programs may contain more intensive violence and coarse 2201d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * language, partial nudity and moderate sexual references</td> 22198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 22298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 223d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AR_TV_SAM_18</td> 22498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Suitable for mature audiences only. Programs contain strong violence, coarse language 2251d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * and explicit sexual references</td> 22698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 2271fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 228d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="8">AU_TV</td> 229d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AU_TV_P</td> 230d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for younger children aged between 2 and 11 years</td> 231d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * </tr> 232d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <tr> 233d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AU_TV_C</td> 234d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for older children aged between 5 and 14 years</td> 2351fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 2361fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 2371fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <td>AU_TV_G</td> 238d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for all ages</td> 2391fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 2401fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 2411fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <td>AU_TV_PG</td> 242d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Parental guidance is recommended for young viewers under 15</td> 2431fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 2441fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 2451fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <td>AU_TV_M</td> 246d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for mature audiences aged 15 years and over</td> 2471fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 2481fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 249d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AU_TV_MA</td> 250d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Not suitable for children and teens under 15, due to sexual descriptions, course 251d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * language, adult themes or drug use</td> 2521fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 2531fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * <tr> 254d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AU_TV_AV</td> 255d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Not suitable for children and teens under 15. This category is used specifically for 256d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * violent programs</td> 25798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 25898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 259d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>AU_TV_R</td> 260d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Not for children under 18. Content may include graphic violence, sexual situations, 261d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * coarse language and explicit drug use</td> 2621fd38bd99610d7dc2a9c335ae2af4089fe1006a1Sungsoo Lim * </tr> 263b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 2641d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td valign="top" rowspan="6">BR_TV</td> 265b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_L</td> 26698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content is suitable for all audiences</td> 267b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 268b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 269b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_10</td> 27098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content suitable for viewers over the age of 10</td> 271b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 272b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 273b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_12</td> 27498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content suitable for viewers over the age of 12</td> 275b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 276b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 277b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_14</td> 27898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content suitable for viewers over the age of 14</td> 279b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 280b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 281b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_16</td> 28298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content suitable for viewers over the age of 16</td> 283b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 284b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <tr> 285b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * <td>BR_TV_18</td> 28698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Content suitable for viewers over the age of 18</td> 28798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 28898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 289d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="15">DVB</td> 290d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_4</td> 291d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 4 and over</td> 29298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 29398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 294d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_5</td> 295d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 5 and over</td> 29698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 29798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 298d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_6</td> 299d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 6 and over</td> 30098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 30198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 302d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_7</td> 303d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 7 and over</td> 30498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 30598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 306d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_8</td> 307d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 8 and over</td> 308b4bbfbcef3dec8f0de13a6ee474858f3a3cd535dSungsoo Lim * </tr> 30998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 310d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_9</td> 311d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 9 and over</td> 31298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 31398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 314d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_10</td> 315d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 10 and over</td> 31698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 31798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 318d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_11</td> 319d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 11 and over</td> 32098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 32198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 322d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_12</td> 323d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 12 and over</td> 32498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 32598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 326d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_13</td> 327d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 13 and over</td> 32898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 32998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 330d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_14</td> 331d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 14 and over</td> 33298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 33398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 334d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_15</td> 335d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 15 and over</td> 33698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 33798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 338d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_16</td> 339d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 16 and over</td> 34098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 34198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 342d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_17</td> 343d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 17 and over</td> 34498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 34598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 346d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>DVB_18</td> 347d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 18 and over</td> 34898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 3496b444eed2cbc6b124c9cfabb47fd924d7a55aa99Sungsoo Lim * <tr> 350d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="18">ES_DVB</td> 351d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_ALL</td> 35298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Recommended for all ages</td> 353b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * </tr> 354b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * <tr> 355d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_C</td> 356d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for children</td> 357b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * </tr> 358b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * <tr> 359d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_X</td> 360d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for adults</td> 361b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * </tr> 362b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * <tr> 363d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_4</td> 364d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 4 and over</td> 36598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 36698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 367d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_5</td> 368d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 5 and over</td> 36998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 37098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 371d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_6</td> 372d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 6 and over</td> 37398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 37498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 375d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_7</td> 376d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 7 and over</td> 37798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 37898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 379d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_8</td> 380d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 8 and over</td> 38198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 38298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 383d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_9</td> 384d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 9 and over</td> 385b1caf4d8178be53b432399747b5114275c200e43Dongwon Kang * </tr> 3864acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * <tr> 387d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_10</td> 388d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 10 and over</td> 3894acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * </tr> 3904acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * <tr> 391d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_11</td> 392d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 11 and over</td> 3934acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * </tr> 3944acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * <tr> 395d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_12</td> 396d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 12 and over</td> 3974acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * </tr> 3984acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * <tr> 399d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_13</td> 400d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 13 and over</td> 4014acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * </tr> 4024acc7c3f4e1d63e702b9a4782b01e4a4ef152e71Sungsoo Lim * <tr> 403d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_14</td> 404d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 14 and over</td> 40598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 40698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 407d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_15</td> 408d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 15 and over</td> 40998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 41098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 411d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_16</td> 412d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 16 and over</td> 41398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 41498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 415d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_17</td> 416d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 17 and over</td> 41798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 41898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 419d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ES_DVB_18</td> 420d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 18 and over</td> 42198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 42298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 423d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="16">FR_DVB</td> 424d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_U</td> 425d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for all ages</td> 42698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 42798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 428d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_4</td> 429d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 4 and over</td> 43098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 43198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 432d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_5</td> 433d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 5 and over</td> 43498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 43598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 436d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_6</td> 437d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 6 and over</td> 43898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 43998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 440d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_7</td> 441d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 7 and over</td> 44298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 44398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 444d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_8</td> 445d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 8 and over</td> 44698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 44798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 448d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_9</td> 449d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 9 and over</td> 45098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 45198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 452d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_10</td> 453d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 10 and over</td> 45498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 45598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 456d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_11</td> 457d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 11 and over</td> 45898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 45998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 460d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_12</td> 461d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 12 and over</td> 462e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * </tr> 463e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <tr> 464d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_13</td> 465d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 13 and over</td> 46698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 46798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 468d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_14</td> 469d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 14 and over</td> 47098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 47198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 472d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_15</td> 473d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 15 and over</td> 47498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 47598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 476d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_16</td> 477d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 16 and over</td> 47898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 47998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 480d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_17</td> 481d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 17 and over</td> 48298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 48398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 484d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>FR_DVB_18</td> 485d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 18 and over</td> 48698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 48798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 488d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="17">ISDB</td> 489d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_4</td> 490d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 4 and over</td> 49198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 49298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 493d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_5</td> 494d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 5 and over</td> 49598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 49698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 497d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_6</td> 498d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 6 and over</td> 49998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 50098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 501d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_7</td> 502d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 7 and over</td> 50398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 50498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 505d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_8</td> 506d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 8 and over</td> 50798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 50898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 509d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_9</td> 510d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 9 and over</td> 511e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * </tr> 512e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <tr> 513d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_10</td> 514d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 10 and over</td> 51598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 51698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 517d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_11</td> 518d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 11 and over</td> 51998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 52098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 521d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_12</td> 522d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 12 and over</td> 52398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 52498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 525d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_13</td> 526d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 13 and over</td> 52798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 52898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 529d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_14</td> 530d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 14 and over</td> 53198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 53298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 533d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_15</td> 534d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 15 and over</td> 53598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 53698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 537d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_16</td> 538d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 16 and over</td> 53998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 54098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 541d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_17</td> 542d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 17 and over</td> 543fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * </tr> 544fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * <tr> 545d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_18</td> 546d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 18 and over</td> 547fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * </tr> 548fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * <tr> 549d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_19</td> 550d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 19 and over</td> 551fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * </tr> 552fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * <tr> 553d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>ISDB_20</td> 554d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Recommended for ages 20 and over</td> 555fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * </tr> 556fe5998b5add1e96eafd5583528bfc8d9874a4123Jae Seo * <tr> 5571d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td valign="top" rowspan="5">KR_TV</td> 558b2835e2700a200b368a8247739648601d79e2b06Jae Seo * <td>KR_TV_ALL</td> 55998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Appropriate for all ages</td> 56098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 56198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 56298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>KR_TV_7</td> 56398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>May contain material inappropriate for children younger than 7, and parental 5641d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * discretion should be used</td> 56598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 56698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 567e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>KR_TV_12</td> 56898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>May deemed inappropriate for those younger than 12, and parental discretion should be 5691d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * used</td> 570e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * </tr> 571e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <tr> 572e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>KR_TV_15</td> 57398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>May be inappropriate for children under 15, and that parental discretion should be 5741d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * used</td> 575e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * </tr> 576e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <tr> 577e6dca2cfa4eecd3a45792703b722fc3ef86e8744Sungsoo Lim * <td>KR_TV_19</td> 57898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>For adults only</td> 57998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 58098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 5813652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td valign="top" rowspan="6">SG_TV</td> 5823652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_G</td> 5833652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for all ages</td> 5843652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * </tr> 5853652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <tr> 5863652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_PG</td> 5873652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for all but parents should guide their young</td> 5883652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * </tr> 5893652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <tr> 5903652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_PG13</td> 5913652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for persons aged 13 and above but parental guidance is advised for children 5923652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * below 13</td> 59398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 59498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 5953652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_NC16</td> 5963652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for persons aged 16 and above</td> 59798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 59898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 5993652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_M18</td> 6003652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for persons aged 18 and above</td> 60198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 60298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 6033652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>SG_TV_R21</td> 6043652e1d8b879fd8e96e8f4e09cefea3c05aa4857Jae Seo * <td>Suitable for adults aged 21 and above</td> 60598ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 60698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 6071d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td valign="top" rowspan="6">US_TV</td> 6081d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_Y</td> 60998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>This program is designed to be appropriate for all children</td> 6105c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6115c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6121d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_Y7</td> 61398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>This program is designed for children age 7 and above</td> 6145c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6155c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6161d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_G</td> 61798ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>Most parents would find this program suitable for all ages</td> 6185c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6195c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6201d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_PG</td> 62198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>This program contains material that parents may find unsuitable for younger children 62298ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </td> 6235c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6245c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6251d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_14</td> 62698ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>This program contains some material that many parents would find unsuitable for 6271d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * children under 14 years of age</td> 6285c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6295c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6301d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_MA</td> 63198ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <td>This program is specifically designed to be viewed by adults and therefore may be 6321d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * unsuitable for children under 17</td> 63398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 6345c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </table> 6355c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * 636ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <h4>System defined strings for sub-ratings</h4> 637ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <table> 6385c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 639ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Rating System</th> 640ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * <th>Constant Value</th> 64151374011a85e7f5860766c4f56cd73ff39e77528Andrew Jeon * <th>Description</th> 6425c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6433596a9645eae5636706d6d76b3d0e321c3d5c11fSungsoo Lim * <tr> 644d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td valign="top" rowspan="3">BR_TV</td> 645d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>BR_TV_D</td> 646d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Drugs<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and BR_TV_18 647d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * </td> 64898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 64998ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 650d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>BR_TV_S</td> 651d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Sex<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and BR_TV_18 652d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * </td> 65398ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 65498ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * <tr> 655d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>BR_TV_V</td> 656d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Violence<br/>Applicable to BR_TV_L, BR_TV_10, BR_TV_12, BR_TV_14, BR_TV_16, and 657d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * BR_TV_18</td> 65898ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 6595c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6601d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td valign="top" rowspan="5">US_TV</td> 6611d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_D</td> 662d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Suggestive dialogue (Usually means talks about sex)<br/>Applicable to US_TV_PG, and 663d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * US_TV_14</td> 6645c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6655c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6661d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_L</td> 667d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Coarse language<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td> 6685c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6695c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6701d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_S</td> 671d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Sexual content<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td> 6725c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6735c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6741d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_V</td> 675d3f17921bde06c0bd164f0abf0e99dafc7c0c569Sungsoo Lim * <td>Violence<br/>Applicable to US_TV_PG, US_TV_14, and US_TV_MA</td> 6765c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </tr> 6775c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * <tr> 6781d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>US_TV_FV</td> 6791d1164012740a486b3074b50d8d2a9c452dbfeccSungsoo Lim * <td>Fantasy violence (Children's programming only)<br/>Applicable to US_TV_Y7</td> 68098ea5fa8e4a99433da0c32273674af189c65f14bSungsoo Lim * </tr> 6815c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * </table> 682e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 6836057102dbb746593a7d59cf377c969b62e38c664Jae Seopublic final class TvContentRating { 6845c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim // TODO: Consider to use other DELIMITER. In some countries such as India may use this delimiter 6855c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim // in the main ratings. 6865c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim private static final String DELIMITER = "/"; 687e16873467cda89d905027458e2664c759465d463Sungsoo Lim 6885c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim private final String mDomain; 6895c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim private final String mRatingSystem; 6905c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim private final String mRating; 6915c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim private final String[] mSubRatings; 6921681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim private final int mHashCode; 693e16873467cda89d905027458e2664c759465d463Sungsoo Lim 694e16873467cda89d905027458e2664c759465d463Sungsoo Lim /** 695ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Creates a {@code TvContentRating} object with predefined content rating strings. 6965c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * 697ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param domain The domain string. For example, "com.android.tv". 698ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param ratingSystem The rating system string. For example, "US_TV". 699ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param rating The content rating string. For example, "US_TV_PG". 700ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param subRatings The sub-rating strings. For example, "US_TV_D" and "US_TV_L". 701ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @return A {@code TvContentRating} object. 702ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @throws IllegalArgumentException If {@code domain}, {@code ratingSystem} or {@code rating} is 703ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@code null}. 704e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 705732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim public static TvContentRating createRating(String domain, String ratingSystem, 706732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim String rating, String... subRatings) { 7075c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim if (TextUtils.isEmpty(domain)) { 7085c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim throw new IllegalArgumentException("domain cannot be empty"); 7095c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 710d22e37acac3a83199423692671e2b20050088426Jaewan Kim if (TextUtils.isEmpty(ratingSystem)) { 711d22e37acac3a83199423692671e2b20050088426Jaewan Kim throw new IllegalArgumentException("ratingSystem cannot be empty"); 712d22e37acac3a83199423692671e2b20050088426Jaewan Kim } 7135c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim if (TextUtils.isEmpty(rating)) { 7145c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim throw new IllegalArgumentException("rating cannot be empty"); 7155c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 716732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim return new TvContentRating(domain, ratingSystem, rating, subRatings); 717e16873467cda89d905027458e2664c759465d463Sungsoo Lim } 718e16873467cda89d905027458e2664c759465d463Sungsoo Lim 719e16873467cda89d905027458e2664c759465d463Sungsoo Lim /** 720ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Recovers a {@code TvContentRating} object from the string that was previously created from 7215c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * {@link #flattenToString}. 722e16873467cda89d905027458e2664c759465d463Sungsoo Lim * 723ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param ratingString The string returned by {@link #flattenToString}. 724ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @return the {@code TvContentRating} object containing the domain, rating system, rating and 725ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * sub-ratings information encoded in {@code ratingString}. 7265c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim * @see #flattenToString 727e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 7285c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim public static TvContentRating unflattenFromString(String ratingString) { 7295c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim if (TextUtils.isEmpty(ratingString)) { 7305c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim throw new IllegalArgumentException("ratingString cannot be empty"); 7315c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 7325c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim String[] strs = ratingString.split(DELIMITER); 733732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim if (strs.length < 3) { 7345c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim throw new IllegalArgumentException("Invalid rating string: " + ratingString); 7355c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 736732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim if (strs.length > 3) { 737732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim String[] subRatings = new String[strs.length - 3]; 738732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim System.arraycopy(strs, 3, subRatings, 0, subRatings.length); 739732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim return new TvContentRating(strs[0], strs[1], strs[2], subRatings); 7405c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 741732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim return new TvContentRating(strs[0], strs[1], strs[2], null); 742e16873467cda89d905027458e2664c759465d463Sungsoo Lim } 743e16873467cda89d905027458e2664c759465d463Sungsoo Lim 744e16873467cda89d905027458e2664c759465d463Sungsoo Lim /** 745e16873467cda89d905027458e2664c759465d463Sungsoo Lim * Constructs a TvContentRating object from a given rating and sub-rating constants. 746e16873467cda89d905027458e2664c759465d463Sungsoo Lim * 747ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param domain The string for domain of the content rating system such as "com.android.tv". 748ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param ratingSystem The rating system string such as "US_TV". 749ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param rating The content rating string such as "US_TV_PG". 750ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @param subRatings The sub-rating strings such as "US_TV_D" and "US_TV_L". 751e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 752732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim private TvContentRating( 753732be11cefc439ea47a6c9cced6ab240aa5f1ea9Sungsoo Lim String domain, String ratingSystem, String rating, String[] subRatings) { 7545c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim mDomain = domain; 7555c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim mRatingSystem = ratingSystem; 7566057102dbb746593a7d59cf377c969b62e38c664Jae Seo mRating = rating; 7571681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (subRatings == null || subRatings.length == 0) { 7581681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim mSubRatings = null; 7591681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } else { 7601681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim Arrays.sort(subRatings); 7611681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim mSubRatings = subRatings; 7621681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 763a9a29a29e55380ebd30175a75b285b16201002b6Sungsoo Lim mHashCode = 31 * Objects.hash(mDomain, mRating) + Arrays.hashCode(mSubRatings); 764e16873467cda89d905027458e2664c759465d463Sungsoo Lim } 765e16873467cda89d905027458e2664c759465d463Sungsoo Lim 766e16873467cda89d905027458e2664c759465d463Sungsoo Lim /** 767ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns the domain of this {@code TvContentRating} object. 7685c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim */ 7695c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim public String getDomain() { 7705c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim return mDomain; 7715c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 7725c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim 7735c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim /** 774ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns the rating system of this {@code TvContentRating} object. 7755c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim */ 7765c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim public String getRatingSystem() { 7775c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim return mRatingSystem; 7785c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim } 7795c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim 7805c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim /** 781ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns the main rating of this {@code TvContentRating} object. 7826057102dbb746593a7d59cf377c969b62e38c664Jae Seo */ 7836057102dbb746593a7d59cf377c969b62e38c664Jae Seo public String getMainRating() { 7846057102dbb746593a7d59cf377c969b62e38c664Jae Seo return mRating; 7856057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 7866057102dbb746593a7d59cf377c969b62e38c664Jae Seo 7876057102dbb746593a7d59cf377c969b62e38c664Jae Seo /** 788ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns the unmodifiable sub-rating string {@link List} of this {@code TvContentRating} 789ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * object. 7906057102dbb746593a7d59cf377c969b62e38c664Jae Seo */ 7916057102dbb746593a7d59cf377c969b62e38c664Jae Seo public List<String> getSubRatings() { 7926057102dbb746593a7d59cf377c969b62e38c664Jae Seo if (mSubRatings == null) { 7936057102dbb746593a7d59cf377c969b62e38c664Jae Seo return null; 7946057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 7956057102dbb746593a7d59cf377c969b62e38c664Jae Seo return Collections.unmodifiableList(Arrays.asList(mSubRatings)); 7966057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 7976057102dbb746593a7d59cf377c969b62e38c664Jae Seo 7986057102dbb746593a7d59cf377c969b62e38c664Jae Seo /** 799ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns a string that unambiguously describes the rating information contained in a 800ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@code TvContentRating} object. One can later recover the object from this string through 801ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * {@link #unflattenFromString}. 8026057102dbb746593a7d59cf377c969b62e38c664Jae Seo * 803ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * @return a string containing the rating information, which can later be stored in the 804ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * database. 8056057102dbb746593a7d59cf377c969b62e38c664Jae Seo * @see #unflattenFromString 8066057102dbb746593a7d59cf377c969b62e38c664Jae Seo */ 8076057102dbb746593a7d59cf377c969b62e38c664Jae Seo public String flattenToString() { 8085c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim StringBuilder builder = new StringBuilder(); 8095c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim builder.append(mDomain); 8105c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim builder.append(DELIMITER); 8115c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim builder.append(mRatingSystem); 8125c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim builder.append(DELIMITER); 8135c5b83fcd58d21c9ab7ac986bf84f604ec5bb4b5Sungsoo Lim builder.append(mRating); 8146057102dbb746593a7d59cf377c969b62e38c664Jae Seo if (mSubRatings != null) { 8156057102dbb746593a7d59cf377c969b62e38c664Jae Seo for (String subRating : mSubRatings) { 8166057102dbb746593a7d59cf377c969b62e38c664Jae Seo builder.append(DELIMITER); 8176057102dbb746593a7d59cf377c969b62e38c664Jae Seo builder.append(subRating); 8186057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 8196057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 8206057102dbb746593a7d59cf377c969b62e38c664Jae Seo return builder.toString(); 8216057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 8226057102dbb746593a7d59cf377c969b62e38c664Jae Seo 8236057102dbb746593a7d59cf377c969b62e38c664Jae Seo /** 824ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * Returns {@code true} if this rating has the same main rating as the specified rating and when 825ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * this rating's sub-ratings contain the other's. 8266057102dbb746593a7d59cf377c969b62e38c664Jae Seo * <p> 827ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * For example, a {@code TvContentRating} object that represents TV-PG with S(Sexual content) 828ceb51abc74129f5c736ba5aa0400c45f1c4752acJae Seo * and V(Violence) contains TV-PG, TV-PG/S, TV-PG/V and itself. 8296057102dbb746593a7d59cf377c969b62e38c664Jae Seo * </p> 8306057102dbb746593a7d59cf377c969b62e38c664Jae Seo * 8316057102dbb746593a7d59cf377c969b62e38c664Jae Seo * @param rating The {@link TvContentRating} to check. 8326057102dbb746593a7d59cf377c969b62e38c664Jae Seo * @return {@code true} if this object contains {@code rating}, {@code false} otherwise. 8336057102dbb746593a7d59cf377c969b62e38c664Jae Seo * @hide 834e16873467cda89d905027458e2664c759465d463Sungsoo Lim */ 8356057102dbb746593a7d59cf377c969b62e38c664Jae Seo @SystemApi 8366057102dbb746593a7d59cf377c969b62e38c664Jae Seo public final boolean contains(TvContentRating rating) { 8376057102dbb746593a7d59cf377c969b62e38c664Jae Seo if (rating == null) { 8386057102dbb746593a7d59cf377c969b62e38c664Jae Seo throw new IllegalArgumentException("rating cannot be null"); 8396057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 8406057102dbb746593a7d59cf377c969b62e38c664Jae Seo if (!rating.getMainRating().equals(mRating)) { 8416057102dbb746593a7d59cf377c969b62e38c664Jae Seo return false; 8426057102dbb746593a7d59cf377c969b62e38c664Jae Seo } 843d22e37acac3a83199423692671e2b20050088426Jaewan Kim if (!rating.getDomain().equals(mDomain) || 844d22e37acac3a83199423692671e2b20050088426Jaewan Kim !rating.getRatingSystem().equals(mRatingSystem) || 845d22e37acac3a83199423692671e2b20050088426Jaewan Kim !rating.getMainRating().equals(mRating)) { 846d22e37acac3a83199423692671e2b20050088426Jaewan Kim return false; 847d22e37acac3a83199423692671e2b20050088426Jaewan Kim } 8486057102dbb746593a7d59cf377c969b62e38c664Jae Seo List<String> subRatings = getSubRatings(); 8496057102dbb746593a7d59cf377c969b62e38c664Jae Seo List<String> subRatingsOther = rating.getSubRatings(); 8506057102dbb746593a7d59cf377c969b62e38c664Jae Seo if (subRatings == null && subRatingsOther == null) { 8516057102dbb746593a7d59cf377c969b62e38c664Jae Seo return true; 8526057102dbb746593a7d59cf377c969b62e38c664Jae Seo } else if (subRatings == null && subRatingsOther != null) { 8536057102dbb746593a7d59cf377c969b62e38c664Jae Seo return false; 8546057102dbb746593a7d59cf377c969b62e38c664Jae Seo } else if (subRatings != null && subRatingsOther == null) { 8556057102dbb746593a7d59cf377c969b62e38c664Jae Seo return true; 8566057102dbb746593a7d59cf377c969b62e38c664Jae Seo } else { 8576057102dbb746593a7d59cf377c969b62e38c664Jae Seo return subRatings.containsAll(subRatingsOther); 858e16873467cda89d905027458e2664c759465d463Sungsoo Lim } 859e16873467cda89d905027458e2664c759465d463Sungsoo Lim } 8601681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim 8611681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim @Override 8621681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim public boolean equals(Object obj) { 8631681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (!(obj instanceof TvContentRating)) { 8641681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return false; 8651681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8661681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim TvContentRating other = (TvContentRating) obj; 8671681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (mHashCode != other.mHashCode) { 8681681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return false; 8691681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8701681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (!TextUtils.equals(mDomain, other.mDomain)) { 8711681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return false; 8721681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8731681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (!TextUtils.equals(mRatingSystem, other.mRatingSystem)) { 8741681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return false; 8751681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8761681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim if (!TextUtils.equals(mRating, other.mRating)) { 8771681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return false; 8781681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8791681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return Arrays.equals(mSubRatings, other.mSubRatings); 8801681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 8811681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim 8821681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim @Override 8831681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim public int hashCode() { 8841681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim return mHashCode; 8851681ac0b690b8888858ab402742dd8eb285518d0Sungsoo Lim } 886e16873467cda89d905027458e2664c759465d463Sungsoo Lim} 887