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

Commit c86dd1f9 authored by Mehdi Alizadeh's avatar Mehdi Alizadeh
Browse files

Enforce MANAGE_APP_PREDICTIONS on getShareTargets

Bug: 120099033
Test: atest ShortcutManagerTest1
Change-Id: I4e105207558e00d7e802999db0b4d4d6880ca05a
parent 525a0d72
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2154,6 +2154,8 @@ public class ShortcutService extends IShortcutService.Stub {
    public ParceledListSlice<ShortcutManager.ShareShortcutInfo> getShareTargets(String packageName,
            IntentFilter filter, @UserIdInt int userId) {
        verifyCaller(packageName, userId);
        enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_APP_PREDICTIONS,
                "getShareTargets");

        synchronized (mLock) {
            throwIfUserLockedL(userId);
+12 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ import android.app.ActivityManager;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.ApplicationInfo;
import android.content.pm.LauncherApps;
import android.content.pm.LauncherApps.PinItemRequest;
@@ -6274,6 +6275,17 @@ public class ShortcutManagerTest1 extends BaseShortcutManagerTest {
        mManager.onApplicationActive(CALLING_PACKAGE_1, USER_0);
    }

    public void testGetShareTargets_permission() {
        IntentFilter filter = new IntentFilter();

        assertExpectException(SecurityException.class, "Missing permission", () ->
                mManager.getShareTargets(filter));

        // Has permission, now it should pass.
        mCallerPermissions.add(permission.MANAGE_APP_PREDICTIONS);
        mManager.getShareTargets(filter);
    }

    public void testDumpsys_crossProfile() {
        prepareCrossProfileDataSet();
        dumpsysOnLogcat("test1", /* force= */ true);