diff options
author | Dongwon Kang <dwkang@google.com> | 2014-08-19 04:01:44 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-19 02:08:36 +0000 |
commit | 79fc32794cf1258184bc3699041dae2a825e69cf (patch) | |
tree | 3b3d831a8619d4c9d3d21b606acde0a750cfab9d /media/java | |
parent | 611f8f17f333f7702cd8c60e2f4908ae306a02db (diff) | |
parent | 911d0827ca67d61c141ab91e75816da94b3f414e (diff) | |
download | frameworks_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.java | 23 |
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; |