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

Commit 153a1bdd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Eliminate the inconsistency between the states of AMS and TSMS"

parents 7cdccf9f 787aa8c0
Loading
Loading
Loading
Loading
+22 −4
Original line number Original line Diff line number Diff line
@@ -865,6 +865,17 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
            }
            }
        }
        }


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

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

        public void removeListener(ISpellCheckerSessionListener listener) {
        public void removeListener(ISpellCheckerSessionListener listener) {
            if (DBG) {
            if (DBG) {
                Slog.w(TAG, "remove listener: " + listener.hashCode());
                Slog.w(TAG, "remove listener: " + listener.hashCode());
@@ -1019,10 +1030,17 @@ public class TextServicesManagerService extends ITextServicesManager.Stub {
        @Override
        @Override
        public void onServiceDisconnected(ComponentName name) {
        public void onServiceDisconnected(ComponentName name) {
            synchronized(mSpellCheckerMap) {
            synchronized(mSpellCheckerMap) {
                onServiceDisconnectedInnerLocked(name);
            }
        }

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