summaryrefslogtreecommitdiffstats
path: root/media/java
diff options
context:
space:
mode:
authorDongwon Kang <dwkang@google.com>2014-08-19 04:01:44 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-19 02:08:36 +0000
commit79fc32794cf1258184bc3699041dae2a825e69cf (patch)
tree3b3d831a8619d4c9d3d21b606acde0a750cfab9d /media/java
parent611f8f17f333f7702cd8c60e2f4908ae306a02db (diff)
parent911d0827ca67d61c141ab91e75816da94b3f414e (diff)
downloadframeworks_base-79fc32794cf1258184bc3699041dae2a825e69cf.zip
frameworks_base-79fc32794cf1258184bc3699041dae2a825e69cf.tar.gz
frameworks_base-79fc32794cf1258184bc3699041dae2a825e69cf.tar.bz2
Merge "TIF: verify the hardware input ID from getHardwareInputId()." into lmp-dev
Diffstat (limited to 'media/java')
-rw-r--r--media/java/android/media/tv/TvInputService.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/media/java/android/media/tv/TvInputService.java b/media/java/android/media/tv/TvInputService.java
index c93b261..f34f695 100644
--- a/media/java/android/media/tv/TvInputService.java
+++ b/media/java/android/media/tv/TvInputService.java
@@ -94,6 +94,8 @@ public abstract class TvInputService extends Service {
private final RemoteCallbackList<ITvInputServiceCallback> mCallbacks =
new RemoteCallbackList<ITvInputServiceCallback>();
+ private TvInputManager mTvInputManager;
+
@Override
public final IBinder onBind(Intent intent) {
return new ITvInputService.Stub() {
@@ -225,6 +227,17 @@ public abstract class TvInputService extends Service {
return null;
}
+ private boolean isPassthroughInput(String inputId) {
+ if (mTvInputManager == null) {
+ mTvInputManager = (TvInputManager) getSystemService(Context.TV_INPUT_SERVICE);
+ }
+ TvInputInfo info = mTvInputManager.getTvInputInfo(inputId);
+ if (info != null && info.isPassthroughInput()) {
+ return true;
+ }
+ return false;
+ }
+
/**
* Base class for derived classes to implement to provide a TV input session.
*/
@@ -1229,9 +1242,14 @@ public abstract class TvInputService extends Service {
HardwareSession proxySession =
((HardwareSession) sessionImpl);
String harewareInputId = proxySession.getHardwareInputId();
- if (TextUtils.isEmpty(harewareInputId)) {
+ if (TextUtils.isEmpty(harewareInputId) ||
+ !isPassthroughInput(harewareInputId)) {
+ if (TextUtils.isEmpty(harewareInputId)) {
+ Log.w(TAG, "Hardware input id is not setup yet.");
+ } else {
+ Log.w(TAG, "Invalid hardware input id : " + harewareInputId);
+ }
sessionImpl.onRelease();
- Log.w(TAG, "Hardware input id is not setup yet.");
try {
cb.onSessionCreated(null, null);
} catch (RemoteException e) {
@@ -1239,7 +1257,6 @@ public abstract class TvInputService extends Service {
}
return;
}
- // TODO: check if the given ID is really hardware TV input.
proxySession.mProxySession = stub;
proxySession.mProxySessionCallback = cb;
proxySession.mServiceHandler = mServiceHandler;