From 256a0f4490b8a4f4734f7db2c59114a3d4698ce2 Mon Sep 17 00:00:00 2001 From: Yorke Lee Date: Mon, 19 Oct 2015 11:44:46 -0700 Subject: DO NOT MERGE Fix bitmap leaks in InCallUI Fix the bitmap leaks in InCallUI that were a result of StatusBarNotifier instances being retained across calls. Bitmap -> StatusBarNotifier -> CallUpdateListenerMap -> CallList Bug: 25003292 Change-Id: I4f8695d7dfbc397b0fee0305a6f94e8d2e8e593f --- InCallUI/src/com/android/incallui/StatusBarNotifier.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'InCallUI') diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java index d1509b80c..76a95f1a6 100644 --- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java +++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java @@ -117,6 +117,10 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, * @see #updateInCallNotification(InCallState,CallList) */ private void cancelNotification() { + if (!TextUtils.isEmpty(mCallId)) { + CallList.getInstance().removeCallUpdateListener(mCallId, this); + mCallId = null; + } if (mCurrentNotification != NOTIFICATION_NONE) { Log.d(this, "cancelInCall()..."); mNotificationManager.cancel(mCurrentNotification); @@ -160,7 +164,7 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, final boolean isIncoming = (call.getState() == Call.State.INCOMING || call.getState() == Call.State.CALL_WAITING); - if (mCallId != null) { + if (!TextUtils.isEmpty(mCallId)) { CallList.getInstance().removeCallUpdateListener(mCallId, this); } mCallId = call.getId(); -- cgit v1.2.3