Merge "Allow shortcuts to be pinned by unbundled chooser" into tm-qpr-dev
This commit is contained in:
@@ -885,7 +885,12 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
* available ShareTarget definitions in this package.
|
||||
*/
|
||||
public List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
|
||||
@NonNull IntentFilter filter) {
|
||||
@NonNull final IntentFilter filter) {
|
||||
return getMatchingShareTargets(filter, null);
|
||||
}
|
||||
|
||||
List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
|
||||
@NonNull final IntentFilter filter, @Nullable final String pkgName) {
|
||||
synchronized (mLock) {
|
||||
final List<ShareTargetInfo> matchedTargets = new ArrayList<>();
|
||||
for (int i = 0; i < mShareTargets.size(); i++) {
|
||||
@@ -909,8 +914,7 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
// included in the result
|
||||
findAll(shortcuts, ShortcutInfo::isNonManifestVisible,
|
||||
ShortcutInfo.CLONE_REMOVE_FOR_APP_PREDICTION,
|
||||
mShortcutUser.mService.mContext.getPackageName(),
|
||||
0, /*getPinnedByAnyLauncher=*/ false);
|
||||
pkgName, 0, /*getPinnedByAnyLauncher=*/ false);
|
||||
|
||||
final List<ShortcutManager.ShareShortcutInfo> result = new ArrayList<>();
|
||||
for (int i = 0; i < shortcuts.size(); i++) {
|
||||
@@ -1108,7 +1112,7 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
|
||||
// Now prepare to publish manifest shortcuts.
|
||||
List<ShortcutInfo> newManifestShortcutList = null;
|
||||
final int shareTargetSize;
|
||||
int shareTargetSize = 0;
|
||||
synchronized (mLock) {
|
||||
try {
|
||||
shareTargetSize = mShareTargets.size();
|
||||
|
||||
@@ -2512,11 +2512,17 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||
}
|
||||
enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_APP_PREDICTIONS,
|
||||
"getShareTargets");
|
||||
final ComponentName chooser = injectChooserActivity();
|
||||
final String pkg = (chooser != null
|
||||
&& mPackageManagerInternal.getComponentEnabledSetting(chooser,
|
||||
injectBinderCallingUid(), userId) == PackageManager.COMPONENT_ENABLED_STATE_ENABLED)
|
||||
? chooser.getPackageName() : mContext.getPackageName();
|
||||
synchronized (mLock) {
|
||||
throwIfUserLockedL(userId);
|
||||
final List<ShortcutManager.ShareShortcutInfo> shortcutInfoList = new ArrayList<>();
|
||||
final ShortcutUser user = getUserShortcutsLocked(userId);
|
||||
user.forAllPackages(p -> shortcutInfoList.addAll(p.getMatchingShareTargets(filter)));
|
||||
user.forAllPackages(p -> shortcutInfoList.addAll(
|
||||
p.getMatchingShareTargets(filter, pkg)));
|
||||
return new ParceledListSlice<>(shortcutInfoList);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user