ActivityTransitionCoordinator: Fix memory leak of ResultReceiver
The ActivityTransitionCoordinator is retained by reference from native code.
The coordinator refers to a app's listener which can cause leak.
b/16737906
Change-Id: Ibbb85480b852442f95b00a8d3beff0161bdadb47
diff --git a/core/java/android/app/ActivityTransitionCoordinator.java b/core/java/android/app/ActivityTransitionCoordinator.java
index b3046b5..75af2df 100644
--- a/core/java/android/app/ActivityTransitionCoordinator.java
+++ b/core/java/android/app/ActivityTransitionCoordinator.java
@@ -196,7 +196,7 @@
final protected ArrayList<View> mSharedElements = new ArrayList<View>();
final protected ArrayList<String> mSharedElementNames = new ArrayList<String>();
final protected ArrayList<View> mTransitioningViews = new ArrayList<View>();
- final protected SharedElementListener mListener;
+ protected SharedElementListener mListener;
protected ResultReceiver mResultReceiver;
final private FixedEpicenterCallback mEpicenterCallback = new FixedEpicenterCallback();
final protected boolean mIsReturning;
@@ -564,6 +564,7 @@
mTransitioningViews.clear();
mResultReceiver = null;
mPendingTransition = null;
+ mListener = null;
}
protected long getFadeDuration() {