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

Commit 5681f7c0 authored by Alexander Dorokhine's avatar Alexander Dorokhine Committed by Android (Google) Code Review
Browse files

Merge "Update framework from jetpack." into sc-dev

parents f4c17d8f ca083d96
Loading
Loading
Loading
Loading
+32 −44
Original line number Diff line number Diff line
@@ -79,15 +79,14 @@ package android.app.appsearch {

  public static final class AppSearchSchema.DocumentPropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
    method @NonNull public String getSchemaType();
    method public boolean isIndexNestedProperties();
    method public boolean shouldIndexNestedProperties();
  }

  public static final class AppSearchSchema.DocumentPropertyConfig.Builder {
    ctor public AppSearchSchema.DocumentPropertyConfig.Builder(@NonNull String);
    ctor public AppSearchSchema.DocumentPropertyConfig.Builder(@NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig build();
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setCardinality(int);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setIndexNestedProperties(boolean);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setSchemaType(@NonNull String);
    method @NonNull public android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder setShouldIndexNestedProperties(boolean);
  }

  public static final class AppSearchSchema.DoublePropertyConfig extends android.app.appsearch.AppSearchSchema.PropertyConfig {
@@ -136,12 +135,12 @@ package android.app.appsearch {

  public final class AppSearchSession implements java.io.Closeable {
    method public void close();
    method public void getByUri(@NonNull android.app.appsearch.GetByUriRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,android.app.appsearch.GenericDocument>);
    method public void getByDocumentId(@NonNull android.app.appsearch.GetByDocumentIdRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,android.app.appsearch.GenericDocument>);
    method public void getNamespaces(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.Set<java.lang.String>>>);
    method public void getSchema(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.GetSchemaResponse>>);
    method public void getStorageInfo(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.StorageInfo>>);
    method public void put(@NonNull android.app.appsearch.PutDocumentsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);
    method public void remove(@NonNull android.app.appsearch.RemoveByUriRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);
    method public void remove(@NonNull android.app.appsearch.RemoveByDocumentIdRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);
    method public void remove(@NonNull String, @NonNull android.app.appsearch.SearchSpec, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.lang.Void>>);
    method public void reportUsage(@NonNull android.app.appsearch.ReportUsageRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.lang.Void>>);
    method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
@@ -156,6 +155,7 @@ package android.app.appsearch {
  public class GenericDocument {
    ctor protected GenericDocument(@NonNull android.app.appsearch.GenericDocument);
    method public long getCreationTimestampMillis();
    method @NonNull public String getId();
    method public static int getMaxIndexedProperties();
    method @NonNull public String getNamespace();
    method @Nullable public Object getProperty(@NonNull String);
@@ -175,7 +175,6 @@ package android.app.appsearch {
    method @NonNull public String getSchemaType();
    method public int getScore();
    method public long getTtlMillis();
    method @NonNull public String getUri();
  }

  public static class GenericDocument.Builder<BuilderType extends android.app.appsearch.GenericDocument.Builder> {
@@ -192,19 +191,19 @@ package android.app.appsearch {
    method @NonNull public BuilderType setTtlMillis(long);
  }

  public final class GetByUriRequest {
  public final class GetByDocumentIdRequest {
    method @NonNull public java.util.Set<java.lang.String> getIds();
    method @NonNull public String getNamespace();
    method @NonNull public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getProjections();
    method @NonNull public java.util.Set<java.lang.String> getUris();
    field public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
  }

  public static final class GetByUriRequest.Builder {
    ctor public GetByUriRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.GetByUriRequest.Builder addProjection(@NonNull String, @NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByUriRequest.Builder addUris(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.GetByUriRequest.Builder addUris(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByUriRequest build();
  public static final class GetByDocumentIdRequest.Builder {
    ctor public GetByDocumentIdRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addIds(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addIds(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest.Builder addProjection(@NonNull String, @NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.GetByDocumentIdRequest build();
  }

  public class GetSchemaResponse {
@@ -249,44 +248,42 @@ package android.app.appsearch {
    method @NonNull public android.app.appsearch.PutDocumentsRequest build();
  }

  public final class RemoveByUriRequest {
  public final class RemoveByDocumentIdRequest {
    method @NonNull public java.util.Set<java.lang.String> getIds();
    method @NonNull public String getNamespace();
    method @NonNull public java.util.Set<java.lang.String> getUris();
  }

  public static final class RemoveByUriRequest.Builder {
    ctor public RemoveByUriRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.RemoveByUriRequest.Builder addUris(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.RemoveByUriRequest.Builder addUris(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.RemoveByUriRequest build();
  public static final class RemoveByDocumentIdRequest.Builder {
    ctor public RemoveByDocumentIdRequest.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest.Builder addIds(@NonNull java.lang.String...);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest.Builder addIds(@NonNull java.util.Collection<java.lang.String>);
    method @NonNull public android.app.appsearch.RemoveByDocumentIdRequest build();
  }

  public final class ReportSystemUsageRequest {
    method @NonNull public String getDatabaseName();
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method @NonNull public String getPackageName();
    method @NonNull public String getUri();
    method public long getUsageTimeMillis();
    method public long getUsageTimestampMillis();
  }

  public static final class ReportSystemUsageRequest.Builder {
    ctor public ReportSystemUsageRequest.Builder(@NonNull String, @NonNull String, @NonNull String);
    ctor public ReportSystemUsageRequest.Builder(@NonNull String, @NonNull String, @NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest build();
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest.Builder setUri(@NonNull String);
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest.Builder setUsageTimeMillis(long);
    method @NonNull public android.app.appsearch.ReportSystemUsageRequest.Builder setUsageTimestampMillis(long);
  }

  public final class ReportUsageRequest {
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method @NonNull public String getUri();
    method public long getUsageTimeMillis();
    method public long getUsageTimestampMillis();
  }

  public static final class ReportUsageRequest.Builder {
    ctor public ReportUsageRequest.Builder(@NonNull String);
    ctor public ReportUsageRequest.Builder(@NonNull String, @NonNull String);
    method @NonNull public android.app.appsearch.ReportUsageRequest build();
    method @NonNull public android.app.appsearch.ReportUsageRequest.Builder setUri(@NonNull String);
    method @NonNull public android.app.appsearch.ReportUsageRequest.Builder setUsageTimeMillis(long);
    method @NonNull public android.app.appsearch.ReportUsageRequest.Builder setUsageTimestampMillis(long);
  }

  public final class SearchResult {
@@ -315,10 +312,9 @@ package android.app.appsearch {
  }

  public static final class SearchResult.MatchInfo.Builder {
    ctor public SearchResult.MatchInfo.Builder();
    ctor public SearchResult.MatchInfo.Builder(@NonNull String);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo build();
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setExactMatchRange(@NonNull android.app.appsearch.SearchResult.MatchRange);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setPropertyPath(@NonNull String);
    method @NonNull public android.app.appsearch.SearchResult.MatchInfo.Builder setSnippetRange(@NonNull android.app.appsearch.SearchResult.MatchRange);
  }

@@ -427,19 +423,11 @@ package android.app.appsearch {
  }

  public static class SetSchemaResponse.MigrationFailure {
    ctor public SetSchemaResponse.MigrationFailure(@NonNull String, @NonNull String, @NonNull String, @NonNull android.app.appsearch.AppSearchResult<?>);
    method @NonNull public android.app.appsearch.AppSearchResult<java.lang.Void> getAppSearchResult();
    method @NonNull public String getDocumentId();
    method @NonNull public String getNamespace();
    method @NonNull public String getSchemaType();
    method @NonNull public String getUri();
  }

  public static final class SetSchemaResponse.MigrationFailure.Builder {
    ctor public SetSchemaResponse.MigrationFailure.Builder();
    method @NonNull public android.app.appsearch.SetSchemaResponse.MigrationFailure build();
    method @NonNull public android.app.appsearch.SetSchemaResponse.MigrationFailure.Builder setAppSearchResult(@NonNull android.app.appsearch.AppSearchResult<java.lang.Void>);
    method @NonNull public android.app.appsearch.SetSchemaResponse.MigrationFailure.Builder setNamespace(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaResponse.MigrationFailure.Builder setSchemaType(@NonNull String);
    method @NonNull public android.app.appsearch.SetSchemaResponse.MigrationFailure.Builder setUri(@NonNull String);
  }

  public class StorageInfo {
+4 −3
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ import java.util.Objects;
 * both successes and failures.
 *
 * @see AppSearchSession#put
 * @see AppSearchSession#getByUri
 * @see AppSearchSession#getByDocumentId
 * @see AppSearchSession#remove
 */
public final class AppSearchBatchResult<KeyType, ValueType> implements Parcelable {
@@ -87,8 +87,9 @@ public final class AppSearchBatchResult<KeyType, ValueType> implements Parcelabl
     * Returns a {@link Map} of keys mapped to instances of the value type for all successful
     * individual results.
     *
     * <p>Example: {@link AppSearchSession#getByUri} returns an {@link AppSearchBatchResult}. Each
     * key (a URI of {@code String} type) will map to a {@link GenericDocument} object.
     * <p>Example: {@link AppSearchSession#getByDocumentId} returns an {@link AppSearchBatchResult}.
     * Each key (the document ID, of {@code String} type) will map to a {@link GenericDocument}
     * object.
     *
     * <p>The values of the {@link Map} will not be {@code null}.
     */
+9 −10
Original line number Diff line number Diff line
@@ -78,10 +78,10 @@ import java.util.function.Consumer;
 * });</pre>
 *
 * <p>The basic unit of data in AppSearch is represented as a {@link GenericDocument} object,
 * containing a URI, namespace, time-to-live, score, and properties. A namespace organizes a logical
 * containing an ID, namespace, time-to-live, score, and properties. A namespace organizes a logical
 * group of documents. For example, a namespace can be created to group documents on a per-account
 * basis. A URI identifies a single document within a namespace. The combination of URI and
 * namespace uniquely identifies a {@link GenericDocument} in the database.
 * basis. An ID identifies a single document within a namespace. The combination of namespace and ID
 * uniquely identifies a {@link GenericDocument} in the database.
 *
 * <p>Once the schema has been set, {@link GenericDocument} objects can be put into the database and
 * indexed by calling {@link AppSearchSession#put}.
@@ -91,8 +91,7 @@ import java.util.function.Consumer;
 * <pre>
 * // Although for this example we use GenericDocument directly, we recommend extending
 * // GenericDocument to create specific types (i.e. Email) with specific setters/getters.
 * GenericDocument email = new GenericDocument.Builder<>(URI, EMAIL_SCHEMA_TYPE)
 *     .setNamespace(NAMESPACE)
 * GenericDocument email = new GenericDocument.Builder<>(NAMESPACE, ID, EMAIL_SCHEMA_TYPE)
 *     .setPropertyString(“subject”, EMAIL_SUBJECT)
 *     .setScore(EMAIL_SCORE)
 *     .build();
@@ -108,13 +107,13 @@ import java.util.function.Consumer;
 * <p>Searching within the database is done by calling {@link AppSearchSession#search} and providing
 * the query string to search for, as well as a {@link SearchSpec}.
 *
 * <p>Alternatively, {@link AppSearchSession#getByUri} can be called to retrieve documents by URI
 * and namespace.
 * <p>Alternatively, {@link AppSearchSession#getByDocumentId} can be called to retrieve documents by
 * namespace and ID.
 *
 * <p>Document removal is done either by time-to-live expiration, or explicitly calling a remove
 * operation. Remove operations can be done by URI and namespace via {@link
 * AppSearchSession#remove(RemoveByUriRequest, Executor, BatchResultCallback)}, or by query via
 * {@link AppSearchSession#remove(String, SearchSpec, Executor, Consumer)}.
 * operation. Remove operations can be done by namespace and ID via {@link
 * AppSearchSession#remove(RemoveByDocumentIdRequest, Executor, BatchResultCallback)}, or by query
 * via {@link AppSearchSession#remove(String, SearchSpec, Executor, Consumer)}.
 */
@SystemService(Context.APP_SEARCH_SERVICE)
public class AppSearchManager {
+48 −45
Original line number Diff line number Diff line
@@ -41,10 +41,14 @@ import java.util.concurrent.Executor;
import java.util.function.Consumer;

/**
 * Represents a connection to an AppSearch storage system where {@link GenericDocument}s can be
 * placed and queried.
 * Provides a connection to a single AppSearch database.
 *
 * <p>An {@link AppSearchSession} instance provides access to database operations such as
 * setting a schema, adding documents, and searching.
 *
 * <p>This class is thread safe.
 *
 * @see GlobalSearchSession
 */
public final class AppSearchSession implements Closeable {
    private static final String TAG = "AppSearchSession";
@@ -250,12 +254,12 @@ public final class AppSearchSession implements Closeable {
     * @param request containing documents to be indexed.
     * @param executor Executor on which to invoke the callback.
     * @param callback Callback to receive pending result of performing this operation. The keys
     *                 of the returned {@link AppSearchBatchResult} are the URIs of the input
     *                 of the returned {@link AppSearchBatchResult} are the IDs of the input
     *                 documents. The values are {@code null} if they were successfully indexed,
     *                 or a failed {@link AppSearchResult} otherwise.
     *                 Or {@link BatchResultCallback#onSystemError} will be invoked with a
     *                 {@link Throwable} if an unexpected internal error occurred in AppSearch
     *                 service.
     *                 or a failed {@link AppSearchResult} otherwise. If an unexpected internal
     *                 error occurs in the AppSearch service,
     *                 {@link BatchResultCallback#onSystemError} will be invoked with a
     *                 {@link Throwable}.
     */
    public void put(
            @NonNull PutDocumentsRequest request,
@@ -291,23 +295,22 @@ public final class AppSearchSession implements Closeable {
    }

    /**
     * Gets {@link GenericDocument} objects by URIs and namespace from the {@link AppSearchSession}
     * database.
     * Gets {@link GenericDocument} objects by document IDs in a namespace from the {@link
     * AppSearchSession} database.
     *
     * @param request a request containing URIs and namespace to get documents for.
     * @param request a request containing a namespace and IDs to get documents for.
     * @param executor Executor on which to invoke the callback.
     * @param callback Callback to receive the pending result of performing this operation. The keys
     *                 of the returned {@link AppSearchBatchResult} are the input URIs. The values
     *                 of the returned {@link AppSearchBatchResult} are the input IDs. The values
     *                 are the returned {@link GenericDocument}s on success, or a failed
     *                 {@link AppSearchResult} otherwise. URIs that are not found will return a
     *                 {@link AppSearchResult} otherwise. IDs that are not found will return a
     *                 failed {@link AppSearchResult} with a result code of
     *                 {@link AppSearchResult#RESULT_NOT_FOUND}.
     *                 Or {@link BatchResultCallback#onSystemError} will be invoked with a
     *                 {@link Throwable} if an unexpected internal error occurred in AppSearch
     *                 service.
     *                 {@link AppSearchResult#RESULT_NOT_FOUND}. If an unexpected internal error
     *                 occurs in the AppSearch service, {@link BatchResultCallback#onSystemError}
     *                 will be invoked with a {@link Throwable}.
     */
    public void getByUri(
            @NonNull GetByUriRequest request,
    public void getByDocumentId(
            @NonNull GetByDocumentIdRequest request,
            @NonNull @CallbackExecutor Executor executor,
            @NonNull BatchResultCallback<String, GenericDocument> callback) {
        Objects.requireNonNull(request);
@@ -319,7 +322,7 @@ public final class AppSearchSession implements Closeable {
                    mPackageName,
                    mDatabaseName,
                    request.getNamespace(),
                    new ArrayList<>(request.getUris()),
                    new ArrayList<>(request.getIds()),
                    request.getProjectionsInternal(),
                    mUserId,
                    new IAppSearchBatchResultCallback.Stub() {
@@ -373,8 +376,8 @@ public final class AppSearchSession implements Closeable {
    }

    /**
     * Retrieves documents from the open {@link AppSearchSession} that match a given query string
     * and type of search provided.
     * Retrieves documents from the open {@link AppSearchSession} that match a given query
     * string and type of search provided.
     *
     * <p>Query strings can be empty, contain one term with no operators, or contain multiple terms
     * and operators.
@@ -441,7 +444,7 @@ public final class AppSearchSession implements Closeable {
    }

    /**
     * Reports usage of a particular document by URI and namespace.
     * Reports usage of a particular document by namespace and ID.
     *
     * <p>A usage report represents an event in which a user interacted with or viewed a document.
     *
@@ -470,8 +473,8 @@ public final class AppSearchSession implements Closeable {
                    mPackageName,
                    mDatabaseName,
                    request.getNamespace(),
                    request.getUri(),
                    request.getUsageTimeMillis(),
                    request.getDocumentId(),
                    request.getUsageTimestampMillis(),
                    /*systemUsage=*/ false,
                    mUserId,
                    new IAppSearchResultCallback.Stub() {
@@ -486,29 +489,29 @@ public final class AppSearchSession implements Closeable {
    }

    /**
     * Removes {@link GenericDocument} objects by URIs and namespace from the {@link
     * Removes {@link GenericDocument} objects by document IDs in a namespace from the {@link
     * AppSearchSession} database.
     *
     * <p>Removed documents will no longer be surfaced by {@link #search} or {@link #getByUri}
     * calls.
     * <p>Removed documents will no longer be surfaced by {@link #search} or {@link
     * #getByDocumentId} calls.
     *
     * <p><b>NOTE:</b>By default, documents are removed via a soft delete operation. Once the
     * document crosses the count threshold or byte usage threshold, the documents will be removed
     * from disk.
     * <p>Once the database crosses the document count or byte usage threshold, removed documents
     * will be deleted from disk.
     *
     * @param request {@link RemoveByUriRequest} with URIs and namespace to remove from the index.
     * @param request {@link RemoveByDocumentIdRequest} with IDs in a namespace to remove from the
     *     index.
     * @param executor Executor on which to invoke the callback.
     * @param callback Callback to receive the pending result of performing this operation. The keys
     *                 of the returned {@link AppSearchBatchResult} are the input URIs. The values
     *                 are {@code null} on success, or a failed {@link AppSearchResult} otherwise.
     *                 URIs that are not found will return a failed {@link AppSearchResult} with a
     *                 result code of {@link AppSearchResult#RESULT_NOT_FOUND}.
     *                 Or {@link BatchResultCallback#onSystemError} will be invoked with a
     *                 {@link Throwable} if an unexpected internal error occurred in AppSearch
     *                 service.
     *                 of the returned {@link AppSearchBatchResult} are the input document IDs. The
     *                 values are {@code null} on success, or a failed {@link AppSearchResult}
     *                 otherwise. IDs that are not found will return a failed
     *                 {@link AppSearchResult} with a result code of
     *                 {@link AppSearchResult#RESULT_NOT_FOUND}. If an unexpected internal error
     *                 occurs in the AppSearch service, {@link BatchResultCallback#onSystemError}
     *                 will be invoked with a {@link Throwable}.
     */
    public void remove(
            @NonNull RemoveByUriRequest request,
            @NonNull RemoveByDocumentIdRequest request,
            @NonNull @CallbackExecutor Executor executor,
            @NonNull BatchResultCallback<String, Void> callback) {
        Objects.requireNonNull(request);
@@ -516,8 +519,8 @@ public final class AppSearchSession implements Closeable {
        Objects.requireNonNull(callback);
        Preconditions.checkState(!mIsClosed, "AppSearchSession has already been closed");
        try {
            mService.removeByUri(mPackageName, mDatabaseName, request.getNamespace(),
                    new ArrayList<>(request.getUris()), mUserId,
            mService.removeByDocumentId(mPackageName, mDatabaseName, request.getNamespace(),
                    new ArrayList<>(request.getIds()), mUserId,
                    new IAppSearchBatchResultCallback.Stub() {
                        @Override
                        public void onResult(AppSearchBatchResult result) {
@@ -581,8 +584,8 @@ public final class AppSearchSession implements Closeable {
    /**
     * Gets the storage info for this {@link AppSearchSession} database.
     *
     * <p>This may take time proportional to the number of documents and may be inefficient to
     * call repeatedly.
     * <p>This may take time proportional to the number of documents and may be inefficient to call
     * repeatedly.
     *
     * @param executor        Executor on which to invoke the callback.
     * @param callback        Callback to receive the storage info.
@@ -618,8 +621,8 @@ public final class AppSearchSession implements Closeable {
    }

    /**
     * Closes the {@link AppSearchSession} to persist all schema and document updates, additions,
     * and deletes to disk.
     * Closes the {@link AppSearchSession} to persist all schema and document updates,
     * additions, and deletes to disk.
     */
    @Override
    public void close() {
+7 −4
Original line number Diff line number Diff line
@@ -31,9 +31,12 @@ import java.util.concurrent.Executor;
import java.util.function.Consumer;

/**
 * This class provides global access to the centralized AppSearch index maintained by the system.
 * Provides a connection to all AppSearch databases the querying application has been granted access
 * to.
 *
 * <p>Apps can retrieve indexed documents through the {@link #search} API.
 * <p>This class is thread safe.
 *
 * @see AppSearchSession
 */
public class GlobalSearchSession implements Closeable {
    private static final String TAG = "AppSearchGlobalSearchSe";
@@ -151,8 +154,8 @@ public class GlobalSearchSession implements Closeable {
                    request.getPackageName(),
                    request.getDatabaseName(),
                    request.getNamespace(),
                    request.getUri(),
                    request.getUsageTimeMillis(),
                    request.getDocumentId(),
                    request.getUsageTimestampMillis(),
                    /*systemUsage=*/ true,
                    mUserId,
                    new IAppSearchResultCallback.Stub() {
Loading