Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a65118e1 authored by Ji-Hwan Lee's avatar Ji-Hwan Lee
Browse files

TIF: Remove ClientState.mInputIds

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

Change-Id: I82e4d9b8999fb9c18819a12e8436cd94e7174206
parent a2796a7a
Loading
Loading
Loading
Loading
+2 −53
Original line number Diff line number Diff line
@@ -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;
            }