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

Commit 678b61f6 authored by Cassie Wang's avatar Cassie Wang Committed by Automerger Merge Worker
Browse files

Merge "Check schemas using getSchema in VisibilityStore." into sc-dev am: 5b4c45b2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13556042

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie3af4c47a4e640b81527fa079caaaffa7fb2a5f1
parents fc576603 5b4c45b2
Loading
Loading
Loading
Loading
+22 −7
Original line number Diff line number Diff line
@@ -218,9 +218,23 @@ public class VisibilityStore {
     * @throws AppSearchException AppSearchException on AppSearchImpl error.
     */
    public void initialize() throws AppSearchException {
        if (!mAppSearchImpl.hasSchemaTypeLocked(PACKAGE_NAME, DATABASE_NAME, VISIBILITY_TYPE)
                || !mAppSearchImpl.hasSchemaTypeLocked(
                        PACKAGE_NAME, DATABASE_NAME, PACKAGE_ACCESSIBLE_TYPE)) {
        List<AppSearchSchema> schemas = mAppSearchImpl.getSchema(PACKAGE_NAME, DATABASE_NAME);
        boolean hasVisibilityType = false;
        boolean hasPackageAccessibleType = false;
        for (int i = 0; i < schemas.size(); i++) {
            AppSearchSchema schema = schemas.get(i);
            if (schema.getSchemaType().equals(VISIBILITY_TYPE)) {
                hasVisibilityType = true;
            } else if (schema.getSchemaType().equals(PACKAGE_ACCESSIBLE_TYPE)) {
                hasPackageAccessibleType = true;
            }

            if (hasVisibilityType && hasPackageAccessibleType) {
                // Found both our types, can exit early.
                break;
            }
        }
        if (!hasVisibilityType || !hasPackageAccessibleType) {
            // Schema type doesn't exist yet. Add it.
            mAppSearchImpl.setSchema(
                    PACKAGE_NAME,
@@ -250,10 +264,11 @@ public class VisibilityStore {
                                /*typePropertyPaths=*/ Collections.emptyMap());

                // Update platform visibility settings
                String[] schemas =
                String[] notPlatformSurfaceableSchemas =
                        document.getPropertyStringArray(NOT_PLATFORM_SURFACEABLE_PROPERTY);
                if (schemas != null) {
                    mNotPlatformSurfaceableMap.put(prefix, new ArraySet<>(Arrays.asList(schemas)));
                if (notPlatformSurfaceableSchemas != null) {
                    mNotPlatformSurfaceableMap.put(
                            prefix, new ArraySet<>(Arrays.asList(notPlatformSurfaceableSchemas)));
                }

                // Update 3p package visibility settings