From 446067c743c1e5b5633a729b5185d4e372f919c6 Mon Sep 17 00:00:00 2001 From: Cassie Wang Date: Fri, 5 Feb 2021 00:05:25 -0800 Subject: Fix package access bug. Bug where we weren't passing the PackageIdentifiers from the SetSchemaRequest properly. Bug: 179416188 Test: atest -m -c --rebuild-module-info CtsAppSearchTestCases Change-Id: Ie51a27a728ae7a2f25960ab47ee4054a56ed6abe --- .../android/server/appsearch/AppSearchManagerService.java | 2 +- .../appsearch/external/localstorage/AppSearchImpl.java | 2 +- .../appsearch/testing/GlobalSearchSessionShimImpl.java | 14 ++++++++++---- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java index 3bbc945c8b87..6bea06843c1d 100644 --- a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java +++ b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java @@ -97,7 +97,7 @@ public class AppSearchManagerService extends SystemService { schemasPackageAccessibleBundles.entrySet()) { List packageIdentifiers = new ArrayList<>(entry.getValue().size()); - for (int i = 0; i < packageIdentifiers.size(); i++) { + for (int i = 0; i < entry.getValue().size(); i++) { packageIdentifiers.add(new PackageIdentifier(entry.getValue().get(i))); } schemasPackageAccessible.put(entry.getKey(), packageIdentifiers); diff --git a/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java b/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java index 8bff7207a553..2f1817ec82a7 100644 --- a/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java +++ b/apex/appsearch/service/java/com/android/server/appsearch/external/localstorage/AppSearchImpl.java @@ -317,7 +317,7 @@ public final class AppSearchImpl { } Map> prefixedSchemasPackageAccessible = - new ArrayMap<>(schemasNotPlatformSurfaceable.size()); + new ArrayMap<>(schemasPackageAccessible.size()); for (Map.Entry> entry : schemasPackageAccessible.entrySet()) { prefixedSchemasPackageAccessible.put(prefix + entry.getKey(), entry.getValue()); diff --git a/apex/appsearch/testing/java/com/android/server/appsearch/testing/GlobalSearchSessionShimImpl.java b/apex/appsearch/testing/java/com/android/server/appsearch/testing/GlobalSearchSessionShimImpl.java index eb1623e5dffc..6595d8d4abba 100644 --- a/apex/appsearch/testing/java/com/android/server/appsearch/testing/GlobalSearchSessionShimImpl.java +++ b/apex/appsearch/testing/java/com/android/server/appsearch/testing/GlobalSearchSessionShimImpl.java @@ -37,8 +37,9 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; /** - * This test class adapts the AppSearch Framework API to ListenableFuture, so it can be tested via - * a consistent interface. + * This test class adapts the AppSearch Framework API to ListenableFuture, so it can be tested via a + * consistent interface. + * * @hide */ public class GlobalSearchSessionShimImpl implements GlobalSearchSessionShim { @@ -47,7 +48,13 @@ public class GlobalSearchSessionShimImpl implements GlobalSearchSessionShim { @NonNull public static ListenableFuture createGlobalSearchSession() { - Context context = ApplicationProvider.getApplicationContext(); + return createGlobalSearchSession(ApplicationProvider.getApplicationContext()); + } + + /** Only for use when called from a non-instrumented context. */ + @NonNull + public static ListenableFuture createGlobalSearchSession( + @NonNull Context context) { AppSearchManager appSearchManager = context.getSystemService(AppSearchManager.class); SettableFuture> future = SettableFuture.create(); ExecutorService executor = Executors.newCachedThreadPool(); @@ -62,7 +69,6 @@ public class GlobalSearchSessionShimImpl implements GlobalSearchSessionShim { @NonNull GlobalSearchSession session, @NonNull ExecutorService executor) { mGlobalSearchSession = Preconditions.checkNotNull(session); mExecutor = Preconditions.checkNotNull(executor); - } @NonNull -- cgit v1.2.3-59-g8ed1b