diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java index 9667f4b6a8c54..8876e5f861391 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/transition/RemoteTransitionHandler.java @@ -84,12 +84,16 @@ public class RemoteTransitionHandler implements Transitions.TransitionHandler { } void removeFiltered(IRemoteTransition remote) { - remote.asBinder().unlinkToDeath(mTransitionDeathRecipient, 0 /* flags */); + boolean removed = false; for (int i = mFilters.size() - 1; i >= 0; --i) { if (mFilters.get(i).second == remote) { mFilters.remove(i); + removed = true; } } + if (removed) { + remote.asBinder().unlinkToDeath(mTransitionDeathRecipient, 0 /* flags */); + } } @Override