Porting AppSearch jetpack upstream changes to platform
Changes included:
#af6646e : Support retrieving the current database's schema
#2696e50 : Unhide the createGlobalSearchSession API.
Bug: 162450968
Test: presubmit
Change-Id: I8e97304fedd446b88393eb6ca5b42c2e210e3271
diff --git a/service/java/com/android/server/appsearch/AppSearchManagerService.java b/service/java/com/android/server/appsearch/AppSearchManagerService.java
index 551347c..1512825 100644
--- a/service/java/com/android/server/appsearch/AppSearchManagerService.java
+++ b/service/java/com/android/server/appsearch/AppSearchManagerService.java
@@ -90,6 +90,32 @@
}
@Override
+ public void getSchema(
+ @NonNull String databaseName,
+ @NonNull IAppSearchResultCallback callback) {
+ Preconditions.checkNotNull(databaseName);
+ Preconditions.checkNotNull(callback);
+ int callingUid = Binder.getCallingUidOrThrow();
+ int callingUserId = UserHandle.getUserId(callingUid);
+ final long callingIdentity = Binder.clearCallingIdentity();
+ try {
+ AppSearchImpl impl = ImplInstanceManager.getInstance(getContext(), callingUserId);
+ databaseName = rewriteDatabaseNameWithUid(databaseName, callingUid);
+ List<AppSearchSchema> schemas = impl.getSchema(databaseName);
+ List<Bundle> schemaBundles = new ArrayList<>(schemas.size());
+ for (int i = 0; i < schemas.size(); i++) {
+ schemaBundles.add(schemas.get(i).getBundle());
+ }
+ invokeCallbackOnResult(callback,
+ AppSearchResult.newSuccessfulResult(schemaBundles));
+ } catch (Throwable t) {
+ invokeCallbackOnError(callback, t);
+ } finally {
+ Binder.restoreCallingIdentity(callingIdentity);
+ }
+ }
+
+ @Override
public void putDocuments(
@NonNull String databaseName,
@NonNull List<Bundle> documentBundles,