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

Commit 34108ebb authored by Patrick Baumann's avatar Patrick Baumann Committed by Gerrit Code Review
Browse files

Merge "Only allow system apps to be forceQueryable"

parents 27b40fc2 9fdc1bfc
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -547,9 +547,9 @@ public class AppsFilter {
        final boolean newIsForceQueryable =
                mForceQueryable.contains(newPkgSetting.appId)
                        /* shared user that is already force queryable */
                        || newPkg.isForceQueryable()
                        || newPkgSetting.forceQueryableOverride
                        || newPkgSetting.forceQueryableOverride /* adb override */
                        || (newPkgSetting.isSystem() && (mSystemAppsQueryable
                        || newPkg.isForceQueryable()
                        || ArrayUtils.contains(mForceQueryableByDevicePackageNames,
                        newPkg.getPackageName())));
        if (newIsForceQueryable
+20 −2
Original line number Diff line number Diff line
@@ -365,14 +365,15 @@ public class AppsFilterTest {
    }

    @Test
    public void testForceQueryable_DoesntFilter() throws Exception {
    public void testForceQueryable_SystemDoesntFilter() throws Exception {
        final AppsFilter appsFilter =
                new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null);
        simulateAddBasicAndroid(appsFilter);
        appsFilter.onSystemReady();

        PackageSetting target = simulateAddPackage(appsFilter,
                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID);
                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID,
                setting -> setting.setPkgFlags(ApplicationInfo.FLAG_SYSTEM));
        PackageSetting calling = simulateAddPackage(appsFilter,
                pkg("com.some.other.package"), DUMMY_CALLING_APPID);

@@ -380,6 +381,23 @@ public class AppsFilterTest {
                SYSTEM_USER));
    }


    @Test
    public void testForceQueryable_NonSystemFilters() throws Exception {
        final AppsFilter appsFilter =
                new AppsFilter(mStateProvider, mFeatureConfigMock, new String[]{}, false, null);
        simulateAddBasicAndroid(appsFilter);
        appsFilter.onSystemReady();

        PackageSetting target = simulateAddPackage(appsFilter,
                pkg("com.some.package").setForceQueryable(true), DUMMY_TARGET_APPID);
        PackageSetting calling = simulateAddPackage(appsFilter,
                pkg("com.some.other.package"), DUMMY_CALLING_APPID);

        assertTrue(appsFilter.shouldFilterApplication(DUMMY_CALLING_APPID, calling, target,
                SYSTEM_USER));
    }

    @Test
    public void testForceQueryableByDevice_SystemCaller_DoesntFilter() throws Exception {
        final AppsFilter appsFilter =