TIF: Remove ClientState.mInputIds

It's no longer used since callback is now global, instead of per-input.

Change-Id: I82e4d9b8999fb9c18819a12e8436cd94e7174206
This commit is contained in:
Ji-Hwan Lee
2014-07-24 16:30:02 +09:00
parent a2796a7abe
commit a65118e13b

View File

@ -693,45 +693,6 @@ public final class TvInputManagerService extends SystemService {
updateServiceConnectionLocked(sessionState.mInfo.getComponent(), userId);
}
private void unregisterClientInternalLocked(IBinder clientToken, String inputId,
int userId) {
UserState userState = getUserStateLocked(userId);
ClientState clientState = userState.clientStateMap.get(clientToken);
if (clientState != null) {
clientState.mInputIds.remove(inputId);
if (clientState.isEmpty()) {
userState.clientStateMap.remove(clientToken);
}
}
TvInputInfo info = userState.inputMap.get(inputId).mInfo;
if (info == null) {
return;
}
ServiceState serviceState = userState.serviceStateMap.get(info.getComponent());
if (serviceState == null) {
return;
}
// Remove this client from the client list and unregister the callback.
serviceState.mClientTokens.remove(clientToken);
if (!serviceState.mClientTokens.isEmpty()) {
// We have other clients who want to keep the callback. Do this later.
return;
}
if (serviceState.mService == null || serviceState.mCallback == null) {
return;
}
try {
serviceState.mService.unregisterCallback(serviceState.mCallback);
} catch (RemoteException e) {
Slog.e(TAG, "error in unregisterCallback", e);
} finally {
serviceState.mCallback = null;
updateServiceConnectionLocked(info.getComponent(), userId);
}
}
private void notifyInputAddedLocked(UserState userState, String inputId) {
if (DEBUG) {
Slog.d(TAG, "notifyInputAdded: inputId = " + inputId);
@ -1415,13 +1376,6 @@ public final class TvInputManagerService extends SystemService {
pw.increaseIndent();
pw.println("mInputIds:");
pw.increaseIndent();
for (String inputId : client.mInputIds) {
pw.println(inputId);
}
pw.decreaseIndent();
pw.println("mSessionTokens:");
pw.increaseIndent();
for (IBinder token : client.mSessionTokens) {
@ -1545,7 +1499,6 @@ public final class TvInputManagerService extends SystemService {
}
private final class ClientState implements IBinder.DeathRecipient {
private final List<String> mInputIds = new ArrayList<String>();
private final List<IBinder> mSessionTokens = new ArrayList<IBinder>();
private IBinder mClientToken;
@ -1557,7 +1510,7 @@ public final class TvInputManagerService extends SystemService {
}
public boolean isEmpty() {
return mInputIds.isEmpty() && mSessionTokens.isEmpty();
return mSessionTokens.isEmpty();
}
@Override
@ -1565,17 +1518,13 @@ public final class TvInputManagerService extends SystemService {
synchronized (mLock) {
UserState userState = getUserStateLocked(mUserId);
// DO NOT remove the client state of clientStateMap in this method. It will be
// removed in releaseSessionLocked() or unregisterClientInternalLocked().
// removed in releaseSessionLocked().
ClientState clientState = userState.clientStateMap.get(mClientToken);
if (clientState != null) {
while (clientState.mSessionTokens.size() > 0) {
releaseSessionLocked(
clientState.mSessionTokens.get(0), Process.SYSTEM_UID, mUserId);
}
while (clientState.mInputIds.size() > 0) {
unregisterClientInternalLocked(
mClientToken, clientState.mInputIds.get(0), mUserId);
}
}
mClientToken = null;
}