diff options
| author | 2020-11-09 07:50:53 +0000 | |
|---|---|---|
| committer | 2020-11-09 07:50:53 +0000 | |
| commit | df72635f5e6aad763e466b2f3419ee7ad015d19f (patch) | |
| tree | a456ed35509821cdb6e5e6f821704b13ad3e435a | |
| parent | f0c7e3b99623b38e466a3107c180ab9f6bc4056a (diff) | |
| parent | 0e771e66756ae69372bd56e1b5accefccd3a2229 (diff) | |
Merge "Fix possible NPE in tune"
| -rwxr-xr-x | services/core/java/com/android/server/tv/TvInputManagerService.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/tv/TvInputManagerService.java b/services/core/java/com/android/server/tv/TvInputManagerService.java index ea6b48ea0866..abcba5dfc9e2 100755 --- a/services/core/java/com/android/server/tv/TvInputManagerService.java +++ b/services/core/java/com/android/server/tv/TvInputManagerService.java @@ -549,6 +549,11 @@ public final class TvInputManagerService extends SystemService { private SessionState getSessionStateLocked(IBinder sessionToken, int callingUid, int userId) { UserState userState = getOrCreateUserStateLocked(userId); + return getSessionStateLocked(sessionToken, callingUid, userState); + } + + private SessionState getSessionStateLocked(IBinder sessionToken, + int callingUid, UserState userState) { SessionState sessionState = userState.sessionStateMap.get(sessionToken); if (sessionState == null) { throw new SessionNotFoundException("Session state not found for token " + sessionToken); @@ -1436,12 +1441,11 @@ public final class TvInputManagerService extends SystemService { getSessionLocked(sessionToken, callingUid, resolvedUserId).tune( channelUri, params); UserState userState = getOrCreateUserStateLocked(resolvedUserId); - SessionState sessionState = userState.sessionStateMap.get(sessionToken); - if (sessionState != null) { - sessionState.isCurrent = true; - sessionState.currentChannel = channelUri; - notifyCurrentChannelInfosUpdatedLocked(userState); - } + SessionState sessionState = getSessionStateLocked(sessionToken, callingUid, + userState); + sessionState.isCurrent = true; + sessionState.currentChannel = channelUri; + notifyCurrentChannelInfosUpdatedLocked(userState); if (TvContract.isChannelUriForPassthroughInput(channelUri)) { // Do not log the watch history for passthrough inputs. return; |