From 0cef910d5e159800bacb69310a69ba04eafcd30c Mon Sep 17 00:00:00 2001 From: Kang Li Date: Thu, 5 Jan 2017 09:14:36 -0800 Subject: [PATCH] Fix crash when updating ranking model in ChooserActivity. Bug: 34095835 Test: manual tests (automated tests will be added later): 1. take a picture and share it to Photos; 2. take a bug report and share it to Gmail; 3. launch Chrome app, share a webpage to Drive; and 4. launch Contacts and share a contact to Messenger. Change-Id: Ie50c8305f90b6df69aa1e47c01d0b2212da0a37a --- core/java/com/android/internal/app/ChooserActivity.java | 4 +++- core/java/com/android/internal/app/ResolverActivity.java | 5 ++++- .../com/android/internal/app/ResolverListController.java | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index 16a12518574d3..6c4faa4dec065 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -589,7 +589,9 @@ public class ChooserActivity extends ResolverActivity { if (ri != null && ri.activityInfo != null) { usageStatsManager.reportChooserSelection(ri.activityInfo.packageName, getUserId(), annotation, null, info.getResolvedIntent().getAction()); - mResolverComparator.updateModel(info.getResolvedComponentName()); + if (mAdapter != null) { + mAdapter.updateModel(info.getResolvedComponentName()); + } if (DEBUG) { Log.d(TAG, "ResolveInfo Package is" + ri.activityInfo.packageName); } diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index f2bd701920e84..23c1969cf8c30 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -107,7 +107,6 @@ public class ResolverActivity extends Activity { private PickTargetOptionRequest mPickOptionRequest; private String mReferrerPackage; - protected ResolverComparator mResolverComparator; protected ResolverDrawerLayout mResolverDrawerLayout; protected String mContentType; protected PackageManager mPm; @@ -1290,6 +1289,10 @@ public class ResolverActivity extends Activity { return mResolverListController.getScore(target); } + public void updateModel(ComponentName componentName) { + mResolverListController.updateModel(componentName); + } + /** * Rebuild the list of resolvers. In some cases some parts will need some asynchronous work * to complete. diff --git a/core/java/com/android/internal/app/ResolverListController.java b/core/java/com/android/internal/app/ResolverListController.java index b91ecb625bcf5..d864a310e91be 100644 --- a/core/java/com/android/internal/app/ResolverListController.java +++ b/core/java/com/android/internal/app/ResolverListController.java @@ -218,4 +218,10 @@ public class ResolverListController { } return mResolverComparator.getScore(target.getResolvedComponentName()); } + + public void updateModel(ComponentName componentName) { + if (mResolverComparator != null) { + mResolverComparator.updateModel(componentName); + } + } }