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

Commit 9c165d6e authored by Jae Seo's avatar Jae Seo
Browse files

TIF: Enable applications to register custom content rating systems

A recent change that moved the string resource for the system supported
content ratings from the framework to the TV app led to a need for
allowing the TV app to publish its own content rating systems. This
change added an intent action and a metadata key to be used by the TV
input manager service for querying available content rating systems,
similarly to the way InputManager defined ACTION_QUERY_KEYBOARD_LAYOUTS
and META_DATA_KEYBOARD_LAYOUTS for custom keyboard layouts. Applications
now can register their own rating systems simply by declaring a
broadcast receiver in their manifests.

Bug: 17167287, Bug: 17114406
Change-Id: I1808c624014b603ea709714737c2a880714bdc0a
parent d576bf31
Loading
Loading
Loading
Loading
+4 −3
Original line number Original line Diff line number Diff line
@@ -1360,7 +1360,6 @@ package android {
    field public static final int trimPathEnd = 16843811; // 0x1010423
    field public static final int trimPathEnd = 16843811; // 0x1010423
    field public static final int trimPathOffset = 16843812; // 0x1010424
    field public static final int trimPathOffset = 16843812; // 0x1010424
    field public static final int trimPathStart = 16843810; // 0x1010422
    field public static final int trimPathStart = 16843810; // 0x1010422
    field public static final int tvContentRatingDescription = 16843955; // 0x10104b3
    field public static final int type = 16843169; // 0x10101a1
    field public static final int type = 16843169; // 0x10101a1
    field public static final int typeface = 16842902; // 0x1010096
    field public static final int typeface = 16842902; // 0x1010096
    field public static final int uiOptions = 16843672; // 0x1010398
    field public static final int uiOptions = 16843672; // 0x1010398
@@ -16780,11 +16779,13 @@ package android.media.tv {
    method public boolean isRatingBlocked(android.media.tv.TvContentRating);
    method public boolean isRatingBlocked(android.media.tv.TvContentRating);
    method public void registerListener(android.media.tv.TvInputManager.TvInputListener, android.os.Handler);
    method public void registerListener(android.media.tv.TvInputManager.TvInputListener, android.os.Handler);
    method public void unregisterListener(android.media.tv.TvInputManager.TvInputListener);
    method public void unregisterListener(android.media.tv.TvInputManager.TvInputListener);
    field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.action.BLOCKED_RATINGS_CHANGED";
    field public static final java.lang.String ACTION_BLOCKED_RATINGS_CHANGED = "android.media.tv.TvInputManager.ACTION_BLOCKED_RATINGS_CHANGED";
    field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.action.PARENTAL_CONTROLS_ENABLED_CHANGED";
    field public static final java.lang.String ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED = "android.media.tv.TvInputManager.ACTION_PARENTAL_CONTROLS_ENABLED_CHANGED";
    field public static final java.lang.String ACTION_QUERY_CONTENT_RATING_SYSTEMS = "android.media.tv.TvInputManager.ACTION_QUERY_CONTENT_RATING_SYSTEMS";
    field public static final int INPUT_STATE_CONNECTED = 0; // 0x0
    field public static final int INPUT_STATE_CONNECTED = 0; // 0x0
    field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1
    field public static final int INPUT_STATE_CONNECTED_STANDBY = 1; // 0x1
    field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2
    field public static final int INPUT_STATE_DISCONNECTED = 2; // 0x2
    field public static final java.lang.String META_DATA_CONTENT_RATING_SYSTEMS = "android.media.tv.TvInputManager.META_DATA_CONTENT_RATING_SYSTEMS";
    field public static final int VIDEO_UNAVAILABLE_REASON_BUFFERING = 3; // 0x3
    field public static final int VIDEO_UNAVAILABLE_REASON_BUFFERING = 3; // 0x3
    field public static final int VIDEO_UNAVAILABLE_REASON_TUNING = 1; // 0x1
    field public static final int VIDEO_UNAVAILABLE_REASON_TUNING = 1; // 0x1
    field public static final int VIDEO_UNAVAILABLE_REASON_UNKNOWN = 0; // 0x0
    field public static final int VIDEO_UNAVAILABLE_REASON_UNKNOWN = 0; // 0x0
+16 −0
Original line number Original line Diff line number Diff line
package android {

  public static final class R.attr {
    field public static final int __removed1 = 16843955; // 0x10104b3
  }

}

package android.app {
package android.app {


  public class KeyguardManager {
  public class KeyguardManager {
@@ -40,3 +48,11 @@ package android.view {


}
}


package com.android.internal {

  public static final class R.attr {
    field public static final int __removed1 = 16843955; // 0x10104b3
  }

}
+8 −6
Original line number Original line Diff line number Diff line
@@ -7348,14 +7348,15 @@
        <!-- Component name of an activity that allows the user to modify
        <!-- Component name of an activity that allows the user to modify
             the settings for this service. -->
             the settings for this service. -->
        <attr name="settingsActivity" />
        <attr name="settingsActivity" />
        <!-- Reference to an XML document that describes TV content rating. -->
        <attr name="tvContentRatingDescription" format="reference" />
    </declare-styleable>
    </declare-styleable>


    <!-- @removed -->
    <attr name="__removed1" format="reference" />

    <!-- Attributes that can be used with <code>rating-system-definition</code> tags inside of the
    <!-- Attributes that can be used with <code>rating-system-definition</code> tags inside of the
         XML resource that describes TV content rating of a
         XML resource that describes TV content rating of a {@link android.media.tv.TvInputService},
         {@link android.media.tv.TvInputService}, which is referenced from
         which is referenced from its
         {@link android.R.attr#tvContentRatingDescription}. -->
         {@link android.media.tv.TvInputManager#META_DATA_CONTENT_RATING_SYSTEMS}. -->
    <declare-styleable name="RatingSystemDefinition">
    <declare-styleable name="RatingSystemDefinition">
        <!-- The unique name of the content rating system. -->
        <!-- The unique name of the content rating system. -->
        <attr name="name" />
        <attr name="name" />
@@ -7369,7 +7370,8 @@


    <!-- Attributes that can be used with <code>rating-definition</code> tags inside of the XML
    <!-- Attributes that can be used with <code>rating-definition</code> tags inside of the XML
         resource that describes TV content rating of a {@link android.media.tv.TvInputService},
         resource that describes TV content rating of a {@link android.media.tv.TvInputService},
         which is referenced from {@link android.R.attr#tvContentRatingDescription}. -->
         which is referenced from its
         {@link android.media.tv.TvInputManager#META_DATA_CONTENT_RATING_SYSTEMS}. -->
    <declare-styleable name="RatingDefinition">
    <declare-styleable name="RatingDefinition">
        <!-- The unique name of the content rating. -->
        <!-- The unique name of the content rating. -->
        <attr name="name" />
        <attr name="name" />
+1 −1
Original line number Original line Diff line number Diff line
@@ -2266,7 +2266,7 @@
  <public type="attr" name="windowReenterTransition" />
  <public type="attr" name="windowReenterTransition" />
  <public type="attr" name="windowSharedElementReturnTransition" />
  <public type="attr" name="windowSharedElementReturnTransition" />
  <public type="attr" name="windowSharedElementReenterTransition" />
  <public type="attr" name="windowSharedElementReenterTransition" />
  <public type="attr" name="tvContentRatingDescription"/>
  <public type="attr" name="__removed1" />
  <public type="attr" name="datePickerMode"/>
  <public type="attr" name="datePickerMode"/>
  <public type="attr" name="timePickerMode"/>
  <public type="attr" name="timePickerMode"/>
  <public type="attr" name="inset" />
  <public type="attr" name="inset" />
+2 −1
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.media.tv.ITvInputClient;
import android.media.tv.ITvInputHardware;
import android.media.tv.ITvInputHardware;
import android.media.tv.ITvInputHardwareCallback;
import android.media.tv.ITvInputHardwareCallback;
import android.media.tv.ITvInputManagerCallback;
import android.media.tv.ITvInputManagerCallback;
import android.media.tv.TvContentRatingSystemInfo;
import android.media.tv.TvInputHardwareInfo;
import android.media.tv.TvInputHardwareInfo;
import android.media.tv.TvInputInfo;
import android.media.tv.TvInputInfo;
import android.media.tv.TvStreamConfig;
import android.media.tv.TvStreamConfig;
@@ -38,7 +39,7 @@ interface ITvInputManager {
    List<TvInputInfo> getTvInputList(int userId);
    List<TvInputInfo> getTvInputList(int userId);
    TvInputInfo getTvInputInfo(in String inputId, int userId);
    TvInputInfo getTvInputInfo(in String inputId, int userId);


    List<Uri> getTvContentRatingSystemXmls(int userId);
    List<TvContentRatingSystemInfo> getTvContentRatingSystemList(int userId);


    void registerCallback(in ITvInputManagerCallback callback, int userId);
    void registerCallback(in ITvInputManagerCallback callback, int userId);
    void unregisterCallback(in ITvInputManagerCallback callback, int userId);
    void unregisterCallback(in ITvInputManagerCallback callback, int userId);
Loading