Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8727c639 authored by Pinyao Ting's avatar Pinyao Ting Committed by Android (Google) Code Review
Browse files

Merge "Allow shortcuts to be pinned by unbundled chooser" into tm-qpr-dev

parents 4873f6ef 81d09888
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -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();
+7 −1
Original line number Diff line number Diff line
@@ -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);
        }
    }