summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMengjun Leng <mengju@codeaurora.org>2016-10-31 13:07:01 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-11-08 18:58:56 -0800
commit15bce2b5b5103e152984e18371716dc65b62e6f9 (patch)
treebe90387378197938ee6b01e4cf90c6600a1199c8 /src
parent5652768ab9cffe9073589b3fee4820e6e020c694 (diff)
downloadandroid_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.tar.gz
android_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.tar.bz2
android_packages_apps_Dialer-15bce2b5b5103e152984e18371716dc65b62e6f9.zip
Fix DialtactsActivity leaks
The CallLogFragment attaches to ViewPager, and does not show by default, so it still stay in pause status. If straight exiting Activity, the method onPause is not called so that the query thread cannot be interrupted. The class QueryThread is inner class that holds the instance of ContactInfoCache. But the member mContactInfoHelper of ContactInfoCache already holds the context of DialtactsActivity so that the instance of DialtactsActivity cannot be recycled. In order to avoid it, must stop the query thread in the method onStop. Change-Id: I0bbbf25b95ae82a2d67152edd07c4f7c14498917 CRs-Fixed: 1083453
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/calllog/CallLogAdapter.java7
-rw-r--r--src/com/android/dialer/calllog/CallLogFragment.java3
2 files changed, 8 insertions, 2 deletions
diff --git a/src/com/android/dialer/calllog/CallLogAdapter.java b/src/com/android/dialer/calllog/CallLogAdapter.java
index 462b03681..a1ec0b358 100644
--- a/src/com/android/dialer/calllog/CallLogAdapter.java
+++ b/src/com/android/dialer/calllog/CallLogAdapter.java
@@ -380,6 +380,13 @@ public class CallLogAdapter extends GroupingListAdapter
}
}
+ public void onStop () {
+ pauseCache();
+ if (mHiddenItemUri != null) {
+ CallLogAsyncTaskUtil.deleteVoicemail(mContext, mHiddenItemUri, null);
+ }
+ }
+
@VisibleForTesting
/* package */ void pauseCache() {
mContactInfoCache.stop();
diff --git a/src/com/android/dialer/calllog/CallLogFragment.java b/src/com/android/dialer/calllog/CallLogFragment.java
index b44d8ca6b..96551a4b4 100644
--- a/src/com/android/dialer/calllog/CallLogFragment.java
+++ b/src/com/android/dialer/calllog/CallLogFragment.java
@@ -354,14 +354,13 @@ public class CallLogFragment extends Fragment implements CallLogQueryHandler.Lis
@Override
public void onPause() {
cancelDisplayUpdate();
- mAdapter.onPause();
super.onPause();
}
@Override
public void onStop() {
updateOnTransition();
-
+ mAdapter.onStop();
super.onStop();
}