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

Commit 573b2626 authored by Pinyao Ting's avatar Pinyao Ting
Browse files

Fix the issue where pinning share target doesn't work in HSUM

Bug: 360916586
Test: manually verified by pinning share target in HSUM build
Flag: EXEMPT bugfix
Change-Id: If8e75fabbd5d53900d9da9709e046bf291468967
parent 6a5c3d16
Loading
Loading
Loading
Loading
+5 −4
Original line number Original line Diff line number Diff line
@@ -912,12 +912,13 @@ class ShortcutPackage extends ShortcutPackageItem {
     * available ShareTarget definitions in this package.
     * available ShareTarget definitions in this package.
     */
     */
    public List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
    public List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
            @NonNull final IntentFilter filter) {
            @NonNull final IntentFilter filter, final int callingUserId) {
        return getMatchingShareTargets(filter, null);
        return getMatchingShareTargets(filter, null, callingUserId);
    }
    }


    List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
    List<ShortcutManager.ShareShortcutInfo> getMatchingShareTargets(
            @NonNull final IntentFilter filter, @Nullable final String pkgName) {
            @NonNull final IntentFilter filter, @Nullable final String pkgName,
            final int callingUserId) {
        synchronized (mPackageItemLock) {
        synchronized (mPackageItemLock) {
            final List<ShareTargetInfo> matchedTargets = new ArrayList<>();
            final List<ShareTargetInfo> matchedTargets = new ArrayList<>();
            for (int i = 0; i < mShareTargets.size(); i++) {
            for (int i = 0; i < mShareTargets.size(); i++) {
@@ -941,7 +942,7 @@ class ShortcutPackage extends ShortcutPackageItem {
            // included in the result
            // included in the result
            findAll(shortcuts, ShortcutInfo::isNonManifestVisible,
            findAll(shortcuts, ShortcutInfo::isNonManifestVisible,
                    ShortcutInfo.CLONE_REMOVE_FOR_APP_PREDICTION,
                    ShortcutInfo.CLONE_REMOVE_FOR_APP_PREDICTION,
                    pkgName, 0, /*getPinnedByAnyLauncher=*/ false);
                    pkgName, callingUserId, /*getPinnedByAnyLauncher=*/ false);


            final List<ShortcutManager.ShareShortcutInfo> result = new ArrayList<>();
            final List<ShortcutManager.ShareShortcutInfo> result = new ArrayList<>();
            for (int i = 0; i < shortcuts.size(); i++) {
            for (int i = 0; i < shortcuts.size(); i++) {
+4 −2
Original line number Original line Diff line number Diff line
@@ -2591,7 +2591,8 @@ public class ShortcutService extends IShortcutService.Stub {
            final List<ShortcutManager.ShareShortcutInfo> shortcutInfoList = new ArrayList<>();
            final List<ShortcutManager.ShareShortcutInfo> shortcutInfoList = new ArrayList<>();
            final ShortcutUser user = getUserShortcutsLocked(userId);
            final ShortcutUser user = getUserShortcutsLocked(userId);
            user.forAllPackages(p -> shortcutInfoList.addAll(
            user.forAllPackages(p -> shortcutInfoList.addAll(
                    p.getMatchingShareTargets(filter, pkg)));
                    p.getMatchingShareTargets(filter, pkg,
                            mUserManagerInternal.getProfileParentId(userId))));
            return new ParceledListSlice<>(shortcutInfoList);
            return new ParceledListSlice<>(shortcutInfoList);
        }
        }
    }
    }
@@ -2623,7 +2624,8 @@ public class ShortcutService extends IShortcutService.Stub {


            final List<ShortcutManager.ShareShortcutInfo> matchedTargets =
            final List<ShortcutManager.ShareShortcutInfo> matchedTargets =
                    getPackageShortcutsLocked(packageName, userId)
                    getPackageShortcutsLocked(packageName, userId)
                            .getMatchingShareTargets(filter);
                            .getMatchingShareTargets(filter,
                                    mUserManagerInternal.getProfileParentId(callingUserId));
            final int matchedSize = matchedTargets.size();
            final int matchedSize = matchedTargets.size();
            for (int i = 0; i < matchedSize; i++) {
            for (int i = 0; i < matchedSize; i++) {
                if (matchedTargets.get(i).getShortcutInfo().getId().equals(shortcutId)) {
                if (matchedTargets.get(i).getShortcutInfo().getId().equals(shortcutId)) {