am 0de4f4dd: am 1bb343ff: am a792fc8a: Merge "TIF: Revisit types in TvInputInfo and TvContract.Channels." into lmp-dev

* commit '0de4f4dd6353937f36c5fccb0a95450f94ad873b':
  TIF: Revisit types in TvInputInfo and TvContract.Channels.
This commit is contained in:
Dongwon Kang
2014-07-22 14:14:25 +00:00
committed by Android Git Automerger
6 changed files with 108 additions and 130 deletions

View File

@@ -746,6 +746,7 @@ package android {
field public static final int l_resource_pad23 = 16843770; // 0x10103fa
field public static final int l_resource_pad24 = 16843769; // 0x10103f9
field public static final int l_resource_pad25 = 16843768; // 0x10103f8
field public static final int l_resource_pad26 = 16843767; // 0x10103f7
field public static final int l_resource_pad3 = 16843790; // 0x101040e
field public static final int l_resource_pad4 = 16843789; // 0x101040d
field public static final int l_resource_pad5 = 16843788; // 0x101040c
@@ -1329,7 +1330,6 @@ package android {
field public static final int trimPathEnd = 16843813; // 0x1010425
field public static final int trimPathOffset = 16843814; // 0x1010426
field public static final int trimPathStart = 16843812; // 0x1010424
field public static final int tvInputType = 16843767; // 0x10103f7
field public static final int type = 16843169; // 0x10101a1
field public static final int typeface = 16842902; // 0x1010096
field public static final int uiOptions = 16843672; // 0x1010398
@@ -16764,33 +16764,33 @@ package android.media.tv {
field public static final java.lang.String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
field public static final java.lang.String CONTENT_TYPE = "vnd.android.cursor.dir/channel";
field public static final android.net.Uri CONTENT_URI;
field public static final int SERVICE_TYPE_AUDIO = 2; // 0x2
field public static final int SERVICE_TYPE_AUDIO_VIDEO = 1; // 0x1
field public static final int SERVICE_TYPE_OTHER = 0; // 0x0
field public static final int TYPE_1SEG = 197632; // 0x30400
field public static final int TYPE_ATSC_C = 131584; // 0x20200
field public static final int TYPE_ATSC_M_H = 131840; // 0x20300
field public static final int TYPE_ATSC_T = 131072; // 0x20000
field public static final int TYPE_CMMB = 262400; // 0x40100
field public static final int TYPE_DTMB = 262144; // 0x40000
field public static final int TYPE_DVB_C = 66048; // 0x10200
field public static final int TYPE_DVB_C2 = 66049; // 0x10201
field public static final int TYPE_DVB_H = 66304; // 0x10300
field public static final int TYPE_DVB_S = 65792; // 0x10100
field public static final int TYPE_DVB_S2 = 65793; // 0x10101
field public static final int TYPE_DVB_SH = 66560; // 0x10400
field public static final int TYPE_DVB_T = 65536; // 0x10000
field public static final int TYPE_DVB_T2 = 65537; // 0x10001
field public static final int TYPE_ISDB_C = 197376; // 0x30300
field public static final int TYPE_ISDB_S = 197120; // 0x30200
field public static final int TYPE_ISDB_T = 196608; // 0x30000
field public static final int TYPE_ISDB_TB = 196864; // 0x30100
field public static final int TYPE_NTSC = 1; // 0x1
field public static final int TYPE_OTHER = 0; // 0x0
field public static final int TYPE_PAL = 2; // 0x2
field public static final int TYPE_SECAM = 3; // 0x3
field public static final int TYPE_S_DMB = 327936; // 0x50100
field public static final int TYPE_T_DMB = 327680; // 0x50000
field public static final java.lang.String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
field public static final java.lang.String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
field public static final java.lang.String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
field public static final java.lang.String TYPE_1SEG = "TYPE_1SEG";
field public static final java.lang.String TYPE_ATSC_C = "TYPE_ATSC_C";
field public static final java.lang.String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
field public static final java.lang.String TYPE_ATSC_T = "TYPE_ATSC_T";
field public static final java.lang.String TYPE_CMMB = "TYPE_CMMB";
field public static final java.lang.String TYPE_DTMB = "TYPE_DTMB";
field public static final java.lang.String TYPE_DVB_C = "TYPE_DVB_C";
field public static final java.lang.String TYPE_DVB_C2 = "TYPE_DVB_C2";
field public static final java.lang.String TYPE_DVB_H = "TYPE_DVB_H";
field public static final java.lang.String TYPE_DVB_S = "TYPE_DVB_S";
field public static final java.lang.String TYPE_DVB_S2 = "TYPE_DVB_S2";
field public static final java.lang.String TYPE_DVB_SH = "TYPE_DVB_SH";
field public static final java.lang.String TYPE_DVB_T = "TYPE_DVB_T";
field public static final java.lang.String TYPE_DVB_T2 = "TYPE_DVB_T2";
field public static final java.lang.String TYPE_ISDB_C = "TYPE_ISDB_C";
field public static final java.lang.String TYPE_ISDB_S = "TYPE_ISDB_S";
field public static final java.lang.String TYPE_ISDB_T = "TYPE_ISDB_T";
field public static final java.lang.String TYPE_ISDB_TB = "TYPE_ISDB_TB";
field public static final java.lang.String TYPE_NTSC = "TYPE_NTSC";
field public static final java.lang.String TYPE_OTHER = "TYPE_OTHER";
field public static final java.lang.String TYPE_PAL = "TYPE_PAL";
field public static final java.lang.String TYPE_SECAM = "TYPE_SECAM";
field public static final java.lang.String TYPE_S_DMB = "TYPE_S_DMB";
field public static final java.lang.String TYPE_T_DMB = "TYPE_T_DMB";
field public static final java.lang.String VIDEO_FORMAT_1080I = "VIDEO_FORMAT_1080I";
field public static final java.lang.String VIDEO_FORMAT_1080P = "VIDEO_FORMAT_1080P";
field public static final java.lang.String VIDEO_FORMAT_2160P = "VIDEO_FORMAT_2160P";
@@ -16867,17 +16867,16 @@ package android.media.tv {
method public java.lang.CharSequence loadLabel(android.content.Context);
method public void writeToParcel(android.os.Parcel, int);
field public static final java.lang.String EXTRA_INPUT_ID = "inputId";
field public static final int TYPE_COMPONENT = 6; // 0x6
field public static final int TYPE_COMPOSITE = 3; // 0x3
field public static final int TYPE_DISPLAY_PORT = 10; // 0xa
field public static final int TYPE_DVI = 8; // 0x8
field public static final int TYPE_HDMI = 9; // 0x9
field public static final int TYPE_OTHER_HARDWARE = 1; // 0x1
field public static final int TYPE_SCART = 5; // 0x5
field public static final int TYPE_SVIDEO = 4; // 0x4
field public static final int TYPE_TUNER = 2; // 0x2
field public static final int TYPE_VGA = 7; // 0x7
field public static final int TYPE_VIRTUAL = 0; // 0x0
field public static final int TYPE_COMPONENT = 1004; // 0x3ec
field public static final int TYPE_COMPOSITE = 1001; // 0x3e9
field public static final int TYPE_DISPLAY_PORT = 1008; // 0x3f0
field public static final int TYPE_DVI = 1006; // 0x3ee
field public static final int TYPE_HDMI = 1007; // 0x3ef
field public static final int TYPE_OTHER = 1000; // 0x3e8
field public static final int TYPE_SCART = 1003; // 0x3eb
field public static final int TYPE_SVIDEO = 1002; // 0x3ea
field public static final int TYPE_TUNER = 0; // 0x0
field public static final int TYPE_VGA = 1005; // 0x3ed
}
public final class TvInputManager {

View File

@@ -7213,24 +7213,6 @@
the settings for this service. -->
<attr name="settingsActivity" />
<!-- Type of this service. -->
<attr name="tvInputType">
<!-- Should be in sync with constant values defined in
{@link android.media.tv.TvInputInfo}. -->
<!-- Virtual input (default) -->
<enum name="virtual" value="0" />
<enum name="otherHardware" value="1" />
<enum name="tuner" value="2" />
<enum name="composite" value="3" />
<enum name="svideo" value="4" />
<enum name="scart" value="5" />
<enum name="component" value="6" />
<enum name="vga" value="7" />
<enum name="dvi" value="8" />
<enum name="hdmi" value="9" />
<enum name="displayPort" value="10" />
</attr>
</declare-styleable>
<declare-styleable name="ResolverDrawerLayout">

View File

@@ -2097,7 +2097,6 @@
<public type="attr" name="isGame" id="0x10103f4" />
<public type="attr" name="allowEmbedded" id="0x10103f5" />
<public type="attr" name="setupActivity" id="0x10103f6"/>
<public type="attr" name="tvInputType" id="0x10103f7"/>
<!-- ===============================================================
Resources added in version 21 of the platform

View File

@@ -340,85 +340,85 @@ public final class TvContract {
public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/channel";
/** A generic channel type. */
public static final int TYPE_OTHER = 0x0;
public static final String TYPE_OTHER = "TYPE_OTHER";
/** The channel type for NTSC. */
public static final int TYPE_NTSC = 0x1;
public static final String TYPE_NTSC = "TYPE_NTSC";
/** The channel type for PAL. */
public static final int TYPE_PAL = 0x2;
public static final String TYPE_PAL = "TYPE_PAL";
/** The channel type for SECAM. */
public static final int TYPE_SECAM = 0x3;
public static final String TYPE_SECAM = "TYPE_SECAM";
/** The channel type for DVB-T (terrestrial). */
public static final int TYPE_DVB_T = 0x00010000;
public static final String TYPE_DVB_T = "TYPE_DVB_T";
/** The channel type for DVB-T2 (terrestrial). */
public static final int TYPE_DVB_T2 = 0x00010001;
public static final String TYPE_DVB_T2 = "TYPE_DVB_T2";
/** The channel type for DVB-S (satellite). */
public static final int TYPE_DVB_S = 0x00010100;
public static final String TYPE_DVB_S = "TYPE_DVB_S";
/** The channel type for DVB-S2 (satellite). */
public static final int TYPE_DVB_S2 = 0x00010101;
public static final String TYPE_DVB_S2 = "TYPE_DVB_S2";
/** The channel type for DVB-C (cable). */
public static final int TYPE_DVB_C = 0x00010200;
public static final String TYPE_DVB_C = "TYPE_DVB_C";
/** The channel type for DVB-C2 (cable). */
public static final int TYPE_DVB_C2 = 0x00010201;
public static final String TYPE_DVB_C2 = "TYPE_DVB_C2";
/** The channel type for DVB-H (handheld). */
public static final int TYPE_DVB_H = 0x00010300;
public static final String TYPE_DVB_H = "TYPE_DVB_H";
/** The channel type for DVB-SH (satellite). */
public static final int TYPE_DVB_SH = 0x00010400;
public static final String TYPE_DVB_SH = "TYPE_DVB_SH";
/** The channel type for ATSC (terrestrial). */
public static final int TYPE_ATSC_T = 0x00020000;
public static final String TYPE_ATSC_T = "TYPE_ATSC_T";
/** The channel type for ATSC (cable). */
public static final int TYPE_ATSC_C = 0x00020200;
public static final String TYPE_ATSC_C = "TYPE_ATSC_C";
/** The channel type for ATSC-M/H (mobile/handheld). */
public static final int TYPE_ATSC_M_H = 0x00020300;
public static final String TYPE_ATSC_M_H = "TYPE_ATSC_M_H";
/** The channel type for ISDB-T (terrestrial). */
public static final int TYPE_ISDB_T = 0x00030000;
public static final String TYPE_ISDB_T = "TYPE_ISDB_T";
/** The channel type for ISDB-Tb (Brazil). */
public static final int TYPE_ISDB_TB = 0x00030100;
public static final String TYPE_ISDB_TB = "TYPE_ISDB_TB";
/** The channel type for ISDB-S (satellite). */
public static final int TYPE_ISDB_S = 0x00030200;
public static final String TYPE_ISDB_S = "TYPE_ISDB_S";
/** The channel type for ISDB-C (cable). */
public static final int TYPE_ISDB_C = 0x00030300;
public static final String TYPE_ISDB_C = "TYPE_ISDB_C";
/** The channel type for 1seg (handheld). */
public static final int TYPE_1SEG = 0x00030400;
public static final String TYPE_1SEG = "TYPE_1SEG";
/** The channel type for DTMB (terrestrial). */
public static final int TYPE_DTMB = 0x00040000;
public static final String TYPE_DTMB = "TYPE_DTMB";
/** The channel type for CMMB (handheld). */
public static final int TYPE_CMMB = 0x00040100;
public static final String TYPE_CMMB = "TYPE_CMMB";
/** The channel type for T-DMB (terrestrial). */
public static final int TYPE_T_DMB = 0x00050000;
public static final String TYPE_T_DMB = "TYPE_T_DMB";
/** The channel type for S-DMB (satellite). */
public static final int TYPE_S_DMB = 0x00050100;
public static final String TYPE_S_DMB = "TYPE_S_DMB";
/** A generic service type. */
public static final int SERVICE_TYPE_OTHER = 0x0;
public static final String SERVICE_TYPE_OTHER = "SERVICE_TYPE_OTHER";
/** The service type for regular TV channels that have both audio and video. */
public static final int SERVICE_TYPE_AUDIO_VIDEO = 0x1;
public static final String SERVICE_TYPE_AUDIO_VIDEO = "SERVICE_TYPE_AUDIO_VIDEO";
/** The service type for radio channels that have audio only. */
public static final int SERVICE_TYPE_AUDIO = 0x2;
public static final String SERVICE_TYPE_AUDIO = "SERVICE_TYPE_AUDIO";
/** The video format for 240p. */
public static final String VIDEO_FORMAT_240P = "VIDEO_FORMAT_240P";
@@ -521,7 +521,7 @@ public final class TvContract {
* </p><p>
* This is a required field.
* </p><p>
* Type: INTEGER
* Type: TEXT
* </p>
*/
public static final String COLUMN_TYPE = "type";
@@ -537,7 +537,7 @@ public final class TvContract {
* </p><p>
* This is a required field.
* </p><p>
* Type: INTEGER
* Type: TEXT
* </p>
*/
public static final String COLUMN_SERVICE_TYPE = "service_type";

View File

@@ -33,6 +33,7 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.util.SparseIntArray;
import android.util.Xml;
import org.xmlpull.v1.XmlPullParser;
@@ -47,60 +48,55 @@ public final class TvInputInfo implements Parcelable {
private static final boolean DEBUG = false;
private static final String TAG = "TvInputInfo";
// Should be in sync with frameworks/base/core/res/res/values/attrs.xml
/**
* TV input type: the TV input service is not handling input from hardware. For example,
* services showing streaming from the internet falls into this type.
* TV input type: the TV input service is a tuner which provides channels.
*/
public static final int TYPE_VIRTUAL = 0;
// Should be in sync with TvInputHardwareInfo.
public static final int TYPE_TUNER = 0;
/**
* TV input type: a generic hardware TV input type.
*/
public static final int TYPE_OTHER_HARDWARE = TvInputHardwareInfo.TV_INPUT_TYPE_OTHER_HARDWARE;
/**
* TV input type: the TV input service is a tuner. (e.g. terrestrial tuner)
*/
public static final int TYPE_TUNER = TvInputHardwareInfo.TV_INPUT_TYPE_TUNER;
public static final int TYPE_OTHER = 1000;
/**
* TV input type: the TV input service represents a composite port.
*/
public static final int TYPE_COMPOSITE = TvInputHardwareInfo.TV_INPUT_TYPE_COMPOSITE;
public static final int TYPE_COMPOSITE = 1001;
/**
* TV input type: the TV input service represents a SVIDEO port.
*/
public static final int TYPE_SVIDEO = TvInputHardwareInfo.TV_INPUT_TYPE_SVIDEO;
public static final int TYPE_SVIDEO = 1002;
/**
* TV input type: the TV input service represents a SCART port.
*/
public static final int TYPE_SCART = TvInputHardwareInfo.TV_INPUT_TYPE_SCART;
public static final int TYPE_SCART = 1003;
/**
* TV input type: the TV input service represents a component port.
*/
public static final int TYPE_COMPONENT = TvInputHardwareInfo.TV_INPUT_TYPE_COMPONENT;
public static final int TYPE_COMPONENT = 1004;
/**
* TV input type: the TV input service represents a VGA port.
*/
public static final int TYPE_VGA = TvInputHardwareInfo.TV_INPUT_TYPE_VGA;
public static final int TYPE_VGA = 1005;
/**
* TV input type: the TV input service represents a DVI port.
*/
public static final int TYPE_DVI = TvInputHardwareInfo.TV_INPUT_TYPE_DVI;
public static final int TYPE_DVI = 1006;
/**
* TV input type: the TV input service is HDMI. (e.g. HDMI 1)
*/
public static final int TYPE_HDMI = TvInputHardwareInfo.TV_INPUT_TYPE_HDMI;
public static final int TYPE_HDMI = 1007;
/**
* TV input type: the TV input service represents a display port.
*/
public static final int TYPE_DISPLAY_PORT = TvInputHardwareInfo.TV_INPUT_TYPE_DISPLAY_PORT;
public static final int TYPE_DISPLAY_PORT = 1008;
/**
* The ID of the TV input to provide to the setup activity and settings activity.
*/
public static final String EXTRA_INPUT_ID = "inputId";
private static SparseIntArray sHardwareTypeToTvInputType = new SparseIntArray();
private static final String XML_START_TAG_NAME = "tv-input";
private final ResolveInfo mService;
@@ -110,7 +106,22 @@ public final class TvInputInfo implements Parcelable {
// Attributes from XML meta data.
private String mSetupActivity;
private String mSettingsActivity;
private int mType = TYPE_VIRTUAL;
private int mType = TYPE_TUNER;
static {
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_OTHER_HARDWARE,
TYPE_OTHER);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_TUNER, TYPE_TUNER);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_COMPOSITE, TYPE_COMPOSITE);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_SVIDEO, TYPE_SVIDEO);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_SCART, TYPE_SCART);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_COMPONENT, TYPE_COMPONENT);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_VGA, TYPE_VGA);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_DVI, TYPE_DVI);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_HDMI, TYPE_HDMI);
sHardwareTypeToTvInputType.put(TvInputHardwareInfo.TV_INPUT_TYPE_DISPLAY_PORT,
TYPE_DISPLAY_PORT);
}
/**
* Create a new instance of the TvInputInfo class,
@@ -123,7 +134,7 @@ public final class TvInputInfo implements Parcelable {
throws XmlPullParserException, IOException {
return createTvInputInfo(context, service, generateInputIdForComponentName(
new ComponentName(service.serviceInfo.packageName, service.serviceInfo.name)),
null);
null, TYPE_TUNER);
}
/**
@@ -138,7 +149,7 @@ public final class TvInputInfo implements Parcelable {
HdmiCecDeviceInfo cecInfo, String parentId) throws XmlPullParserException, IOException {
return createTvInputInfo(context, service, generateInputIdForHdmiCec(
new ComponentName(service.serviceInfo.packageName, service.serviceInfo.name),
cecInfo), parentId);
cecInfo), parentId, TYPE_HDMI);
}
/**
@@ -151,13 +162,14 @@ public final class TvInputInfo implements Parcelable {
*/
public static TvInputInfo createTvInputInfo(Context context, ResolveInfo service,
TvInputHardwareInfo hardwareInfo) throws XmlPullParserException, IOException {
int inputType = sHardwareTypeToTvInputType.get(hardwareInfo.getType(), TYPE_TUNER);
return createTvInputInfo(context, service, generateInputIdForHardware(
new ComponentName(service.serviceInfo.packageName, service.serviceInfo.name),
hardwareInfo), null);
hardwareInfo), null, inputType);
}
private static TvInputInfo createTvInputInfo(Context context, ResolveInfo service,
String id, String parentId) throws XmlPullParserException, IOException {
String id, String parentId, int inputType) throws XmlPullParserException, IOException {
ServiceInfo si = service.serviceInfo;
PackageManager pm = context.getPackageManager();
XmlResourceParser parser = null;
@@ -182,7 +194,7 @@ public final class TvInputInfo implements Parcelable {
"Meta-data does not start with tv-input-service tag in " + si.name);
}
TvInputInfo input = new TvInputInfo(service, id, parentId);
TvInputInfo input = new TvInputInfo(service, id, parentId, inputType);
TypedArray sa = res.obtainAttributes(attrs,
com.android.internal.R.styleable.TvInputService);
input.mSetupActivity = sa.getString(
@@ -196,14 +208,6 @@ public final class TvInputInfo implements Parcelable {
Log.d(TAG, "Settings activity loaded. [" + input.mSettingsActivity + "] for "
+ si.name);
}
if (pm.checkPermission(android.Manifest.permission.TV_INPUT_HARDWARE, si.packageName)
== PackageManager.PERMISSION_GRANTED) {
input.mType = sa.getInt(
com.android.internal.R.styleable.TvInputService_tvInputType, TYPE_VIRTUAL);
if (DEBUG) {
Log.d(TAG, "Type loaded. [" + input.mType + "] for " + si.name);
}
}
sa.recycle();
return input;
@@ -222,11 +226,13 @@ public final class TvInputInfo implements Parcelable {
* @param service The ResolveInfo returned from the package manager about this TV input service.
* @param id ID of this TV input. Should be generated via generateInputId*().
* @param parentId ID of this TV input's parent input. {@code null} if none exists.
* @param type The type of this TV input service.
*/
private TvInputInfo(ResolveInfo service, String id, String parentId) {
private TvInputInfo(ResolveInfo service, String id, String parentId, int type) {
mService = service;
mId = id;
mParentId = parentId;
mType = type;
}
/**
@@ -314,12 +320,7 @@ public final class TvInputInfo implements Parcelable {
* @see TvContract#buildChannelUriForPassthroughTvInput(String)
*/
public boolean isPassthroughInputType() {
if (mType == TYPE_HDMI || mType == TYPE_DISPLAY_PORT || mType == TYPE_SCART
|| mType == TYPE_DVI || mType == TYPE_VGA || mType == TYPE_COMPONENT
|| mType == TYPE_COMPOSITE || mType == TYPE_SVIDEO) {
return true;
}
return false;
return mType != TYPE_TUNER;
}
/**

View File

@@ -211,9 +211,6 @@ class TvInputHardwareManager implements TvInputHal.Callback {
}
public void addHardwareTvInput(int deviceId, TvInputInfo info) {
if (info.getType() == TvInputInfo.TYPE_VIRTUAL) {
throw new IllegalArgumentException("info (" + info + ") has virtual type.");
}
synchronized (mLock) {
String oldInputId = mHardwareInputIdMap.get(deviceId);
if (oldInputId != null) {