Loading services/core/java/com/android/server/TextServicesManagerService.java +7 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.function.Predicate; public class TextServicesManagerService extends ITextServicesManager.Stub { private static final String TAG = TextServicesManagerService.class.getSimpleName(); Loading Loading @@ -885,6 +886,11 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } synchronized (mLock) { mListeners.unregister(listener); final IBinder scListenerBinder = listener.asBinder(); final Predicate<SessionRequest> removeCondition = request -> request.mScListener.asBinder() == scListenerBinder; mPendingSessionRequests.removeIf(removeCondition); mOnGoingSessionRequests.removeIf(removeCondition); cleanLocked(); } } Loading Loading @@ -934,6 +940,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (mUnbindCalled) { return; } mListeners.register(request.mScListener); if (!mConnected) { mPendingSessionRequests.add(request); return; Loading @@ -959,7 +966,6 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (mOnGoingSessionRequests.remove(request)) { try { request.mTsListener.onServiceConnected(newSession); mListeners.register(request.mScListener); } catch (RemoteException e) { // Technically this can happen if the spell checker client app is already // dead. We can just forget about this request; the request is already Loading Loading
services/core/java/com/android/server/TextServicesManagerService.java +7 −1 Original line number Diff line number Diff line Loading @@ -71,6 +71,7 @@ import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.function.Predicate; public class TextServicesManagerService extends ITextServicesManager.Stub { private static final String TAG = TextServicesManagerService.class.getSimpleName(); Loading Loading @@ -885,6 +886,11 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { } synchronized (mLock) { mListeners.unregister(listener); final IBinder scListenerBinder = listener.asBinder(); final Predicate<SessionRequest> removeCondition = request -> request.mScListener.asBinder() == scListenerBinder; mPendingSessionRequests.removeIf(removeCondition); mOnGoingSessionRequests.removeIf(removeCondition); cleanLocked(); } } Loading Loading @@ -934,6 +940,7 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (mUnbindCalled) { return; } mListeners.register(request.mScListener); if (!mConnected) { mPendingSessionRequests.add(request); return; Loading @@ -959,7 +966,6 @@ public class TextServicesManagerService extends ITextServicesManager.Stub { if (mOnGoingSessionRequests.remove(request)) { try { request.mTsListener.onServiceConnected(newSession); mListeners.register(request.mScListener); } catch (RemoteException e) { // Technically this can happen if the spell checker client app is already // dead. We can just forget about this request; the request is already Loading