Loading services/core/java/com/android/server/tv/TvInputManagerService.java +14 −15 Original line number Diff line number Diff line Loading @@ -197,8 +197,8 @@ public final class TvInputManagerService extends SystemService { UserState userState = getUserStateLocked(userId); ServiceState serviceState = userState.serviceStateMap.get(name); if (serviceState == null) { throw new IllegalStateException("Service state not found for " + name + " (userId=" + userId + ")"); throw new IllegalStateException("Service state not found for " + name + " (userId=" + userId + ")"); } return serviceState; } Loading Loading @@ -233,8 +233,8 @@ public final class TvInputManagerService extends SystemService { if (serviceState == null) { return; } boolean isStateEmpty = serviceState.clients.size() == 0 && serviceState.sessionStateMap.size() == 0; boolean isStateEmpty = serviceState.clients.isEmpty() && serviceState.sessionTokens.isEmpty(); if (serviceState.service == null && !isStateEmpty && userId == mCurrentUserId) { // This means that the service is not yet connected but its state indicates that we // have pending requests. Then, connect the service. Loading Loading @@ -263,7 +263,9 @@ public final class TvInputManagerService extends SystemService { } private void createSessionInternalLocked(ITvInputService service, final IBinder sessionToken, final SessionState sessionState, final int userId) { final int userId) { final SessionState sessionState = getUserStateLocked(userId).sessionStateMap.get(sessionToken); if (DEBUG) { Log.d(TAG, "createSessionInternalLocked(name=" + sessionState.name.getClassName() + ")"); Loading Loading @@ -319,10 +321,10 @@ public final class TvInputManagerService extends SystemService { UserState userState = getUserStateLocked(userId); SessionState sessionState = userState.sessionStateMap.remove(sessionToken); // Also remove the session state from the session state map of the current service. // Also remove the session token from the session token list of the current service. ServiceState serviceState = userState.serviceStateMap.get(sessionState.name); if (serviceState != null) { serviceState.sessionStateMap.remove(sessionToken); serviceState.sessionTokens.remove(sessionToken); } updateServiceConnectionLocked(sessionState.name, userId); } Loading Loading @@ -465,11 +467,11 @@ public final class TvInputManagerService extends SystemService { serviceState = new ServiceState(name, resolvedUserId); userState.serviceStateMap.put(name, serviceState); } serviceState.sessionStateMap.put(sessionToken, sessionState); serviceState.sessionTokens.add(sessionToken); if (serviceState.service != null) { createSessionInternalLocked(serviceState.service, sessionToken, sessionState, resolvedUserId); resolvedUserId); } else { updateServiceConnectionLocked(name, resolvedUserId); } Loading Loading @@ -580,8 +582,7 @@ public final class TvInputManagerService extends SystemService { private final class ServiceState { private final List<IBinder> clients = new ArrayList<IBinder>(); private final ArrayMap<IBinder, SessionState> sessionStateMap = new ArrayMap<IBinder, SessionState>(); private final List<IBinder> sessionTokens = new ArrayList<IBinder>(); private final ServiceConnection connection; private ITvInputService service; Loading Loading @@ -637,10 +638,8 @@ public final class TvInputManagerService extends SystemService { } // And create sessions, if any. for (Map.Entry<IBinder, SessionState> entry : serviceState.sessionStateMap .entrySet()) { createSessionInternalLocked(serviceState.service, entry.getKey(), entry.getValue(), mUserId); for (IBinder sessionToken : serviceState.sessionTokens) { createSessionInternalLocked(serviceState.service, sessionToken, mUserId); } } } Loading Loading
services/core/java/com/android/server/tv/TvInputManagerService.java +14 −15 Original line number Diff line number Diff line Loading @@ -197,8 +197,8 @@ public final class TvInputManagerService extends SystemService { UserState userState = getUserStateLocked(userId); ServiceState serviceState = userState.serviceStateMap.get(name); if (serviceState == null) { throw new IllegalStateException("Service state not found for " + name + " (userId=" + userId + ")"); throw new IllegalStateException("Service state not found for " + name + " (userId=" + userId + ")"); } return serviceState; } Loading Loading @@ -233,8 +233,8 @@ public final class TvInputManagerService extends SystemService { if (serviceState == null) { return; } boolean isStateEmpty = serviceState.clients.size() == 0 && serviceState.sessionStateMap.size() == 0; boolean isStateEmpty = serviceState.clients.isEmpty() && serviceState.sessionTokens.isEmpty(); if (serviceState.service == null && !isStateEmpty && userId == mCurrentUserId) { // This means that the service is not yet connected but its state indicates that we // have pending requests. Then, connect the service. Loading Loading @@ -263,7 +263,9 @@ public final class TvInputManagerService extends SystemService { } private void createSessionInternalLocked(ITvInputService service, final IBinder sessionToken, final SessionState sessionState, final int userId) { final int userId) { final SessionState sessionState = getUserStateLocked(userId).sessionStateMap.get(sessionToken); if (DEBUG) { Log.d(TAG, "createSessionInternalLocked(name=" + sessionState.name.getClassName() + ")"); Loading Loading @@ -319,10 +321,10 @@ public final class TvInputManagerService extends SystemService { UserState userState = getUserStateLocked(userId); SessionState sessionState = userState.sessionStateMap.remove(sessionToken); // Also remove the session state from the session state map of the current service. // Also remove the session token from the session token list of the current service. ServiceState serviceState = userState.serviceStateMap.get(sessionState.name); if (serviceState != null) { serviceState.sessionStateMap.remove(sessionToken); serviceState.sessionTokens.remove(sessionToken); } updateServiceConnectionLocked(sessionState.name, userId); } Loading Loading @@ -465,11 +467,11 @@ public final class TvInputManagerService extends SystemService { serviceState = new ServiceState(name, resolvedUserId); userState.serviceStateMap.put(name, serviceState); } serviceState.sessionStateMap.put(sessionToken, sessionState); serviceState.sessionTokens.add(sessionToken); if (serviceState.service != null) { createSessionInternalLocked(serviceState.service, sessionToken, sessionState, resolvedUserId); resolvedUserId); } else { updateServiceConnectionLocked(name, resolvedUserId); } Loading Loading @@ -580,8 +582,7 @@ public final class TvInputManagerService extends SystemService { private final class ServiceState { private final List<IBinder> clients = new ArrayList<IBinder>(); private final ArrayMap<IBinder, SessionState> sessionStateMap = new ArrayMap<IBinder, SessionState>(); private final List<IBinder> sessionTokens = new ArrayList<IBinder>(); private final ServiceConnection connection; private ITvInputService service; Loading Loading @@ -637,10 +638,8 @@ public final class TvInputManagerService extends SystemService { } // And create sessions, if any. for (Map.Entry<IBinder, SessionState> entry : serviceState.sessionStateMap .entrySet()) { createSessionInternalLocked(serviceState.service, entry.getKey(), entry.getValue(), mUserId); for (IBinder sessionToken : serviceState.sessionTokens) { createSessionInternalLocked(serviceState.service, sessionToken, mUserId); } } } Loading