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

Commit 1854cb5a authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Remove redundant synchonized blocks from TSMS

As a preparation to fix Bug 63452807, this CL cleans up some redundant
synchonized blocks in TextServicesManagerService (TSMS).

This is purely a code clean-up that has no behavior change.

Bug: 63452807
Test: compile
Change-Id: I5f8c112d72dad46297b59da623f066fa944c1a27
parent 39a9832d
Loading
Loading
Loading
Loading
+24 −30
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {

    private void unbindServiceLocked() {
        for (SpellCheckerBindGroup scbg : mSpellCheckerBindGroups.values()) {
            scbg.removeAll();
            scbg.removeAllLocked();
        }
        mSpellCheckerBindGroups.clear();
    }
@@ -788,30 +788,26 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
            mListeners = new InternalDeathRecipients(this);
        }

        public void onServiceConnected(ISpellCheckerService spellChecker) {
        public void onServiceConnectedLocked(ISpellCheckerService spellChecker) {
            if (DBG) {
                Slog.d(TAG, "onServiceConnected");
                Slog.d(TAG, "onServiceConnectedLocked");
            }

            synchronized (mLock) {
            mSpellChecker = spellChecker;
            mConnected = true;
            // Dispatch pending getISpellCheckerSession requests.
            mPendingSessionRequests.forEach(this::getISpellCheckerSessionLocked);
            mPendingSessionRequests.clear();
        }
        }

        public void onServiceDisconnected() {
        public void onServiceDisconnectedLocked() {
            if (DBG) {
                Slog.d(TAG, "onServiceDisconnected");
                Slog.d(TAG, "onServiceDisconnectedLocked");
            }

            synchronized (mLock) {
            mSpellChecker = null;
            mConnected = false;
        }
        }

        public void removeListener(ISpellCheckerSessionListener listener) {
            if (DBG) {
@@ -853,9 +849,8 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
            mUnbindCalled = true;
        }

        public void removeAll() {
        public void removeAllLocked() {
            Slog.e(TAG, "Remove the spell checker bind unexpectedly.");
            synchronized (mLock) {
            final int size = mListeners.getRegisteredCallbackCount();
            for (int i = size - 1; i >= 0; --i) {
                mListeners.unregister(mListeners.getRegisteredCallbackItem(i));
@@ -864,7 +859,6 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
            mOnGoingSessionRequests.clear();
            cleanLocked();
        }
        }

        public void getISpellCheckerSessionOrQueueLocked(@NonNull SessionRequest request) {
            if (mUnbindCalled) {
@@ -888,7 +882,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
                mOnGoingSessionRequests.add(request);
            } catch(RemoteException e) {
                // The target spell checker service is not available.  Better to reset the state.
                removeAll();
                removeAllLocked();
            }
            cleanLocked();
        }
@@ -930,13 +924,13 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {

        private void onServiceConnectedInnerLocked(ComponentName name, IBinder service) {
            if (DBG) {
                Slog.w(TAG, "onServiceConnected: " + name);
                Slog.w(TAG, "onServiceConnectedInnerLocked: " + name);
            }
            final ISpellCheckerService spellChecker =
                    ISpellCheckerService.Stub.asInterface(service);
            final SpellCheckerBindGroup group = mSpellCheckerBindGroups.get(mSciId);
            if (group != null && this == group.mInternalConnection) {
                group.onServiceConnected(spellChecker);
                group.onServiceConnectedLocked(spellChecker);
            }
        }

@@ -949,11 +943,11 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {

        private void onServiceDisconnectedInnerLocked(ComponentName name) {
            if (DBG) {
                Slog.w(TAG, "onServiceDisconnected: " + name);
                Slog.w(TAG, "onServiceDisconnectedInnerLocked: " + name);
            }
            final SpellCheckerBindGroup group = mSpellCheckerBindGroups.get(mSciId);
            if (group != null && this == group.mInternalConnection) {
                group.onServiceDisconnected();
                group.onServiceDisconnectedLocked();
            }
        }
    }