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
This commit is contained in:
Kang Li
2017-01-05 09:14:36 -08:00
parent 874d45597f
commit 0cef910d5e
3 changed files with 13 additions and 2 deletions

View File

@@ -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);
}

View File

@@ -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.

View File

@@ -218,4 +218,10 @@ public class ResolverListController {
}
return mResolverComparator.getScore(target.getResolvedComponentName());
}
public void updateModel(ComponentName componentName) {
if (mResolverComparator != null) {
mResolverComparator.updateModel(componentName);
}
}
}