diff options
| -rwxr-xr-x | services/core/java/com/android/server/tv/TvInputHardwareManager.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/tv/TvInputManagerService.java | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/tv/TvInputHardwareManager.java b/services/core/java/com/android/server/tv/TvInputHardwareManager.java index 9cdceef006d9..d63a908517fb 100755 --- a/services/core/java/com/android/server/tv/TvInputHardwareManager.java +++ b/services/core/java/com/android/server/tv/TvInputHardwareManager.java @@ -269,6 +269,10 @@ class TvInputHardwareManager implements TvInputHal.Callback { @Override public void onTvMessage(int deviceId, int type, Bundle data) { synchronized (mLock) { + String inputId = mHardwareInputIdMap.get(deviceId); + if (inputId == null) { + return; + } SomeArgs args = SomeArgs.obtain(); args.arg1 = mHardwareInputIdMap.get(deviceId); args.arg2 = data; diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index 9cfdd5fb42e7..a05bd2d008da 100644 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -4152,6 +4152,10 @@ public final class TvInputManagerService extends SystemService { synchronized (mLock) { UserState userState = getOrCreateUserStateLocked(mCurrentUserId); TvInputState inputState = userState.inputMap.get(inputId); + if (inputState == null) { + Slog.e(TAG, "failed to send TV message - unknown input id " + inputId); + return; + } ServiceState serviceState = userState.serviceStateMap.get(inputState.info .getComponent()); for (IBinder token : serviceState.sessionTokens) { |