Merge "Move Executor parameter into SearchResult#getNextPage." into sc-dev

This commit is contained in:
Alexander Dorokhine
2021-02-26 00:11:02 +00:00
committed by Android (Google) Code Review
7 changed files with 22 additions and 34 deletions

View File

@@ -148,7 +148,7 @@ package android.app.appsearch {
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 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, @NonNull java.util.concurrent.Executor);
method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
method public void setSchema(@NonNull android.app.appsearch.SetSchemaRequest, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<android.app.appsearch.SetSchemaResponse>>);
}
@@ -217,7 +217,7 @@ package android.app.appsearch {
public class GlobalSearchSession implements java.io.Closeable {
method public void close();
method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec, @NonNull java.util.concurrent.Executor);
method @NonNull public android.app.appsearch.SearchResults search(@NonNull String, @NonNull android.app.appsearch.SearchSpec);
}
public class PackageIdentifier {
@@ -287,7 +287,7 @@ package android.app.appsearch {
public class SearchResults implements java.io.Closeable {
method public void close();
method public void getNextPage(@NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.List<android.app.appsearch.SearchResult>>>);
method public void getNextPage(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.List<android.app.appsearch.SearchResult>>>);
}
public final class SearchSpec {

View File

@@ -395,21 +395,15 @@ public final class AppSearchSession implements Closeable {
* @param queryExpression query string to search.
* @param searchSpec spec for setting document filters, adding projection, setting term match
* type, etc.
* @param executor Executor on which to invoke the callback of the following request
* {@link SearchResults#getNextPage}.
* @return a {@link SearchResults} object for retrieved matched documents.
*/
@NonNull
public SearchResults search(
@NonNull String queryExpression,
@NonNull SearchSpec searchSpec,
@NonNull @CallbackExecutor Executor executor) {
public SearchResults search(@NonNull String queryExpression, @NonNull SearchSpec searchSpec) {
Objects.requireNonNull(queryExpression);
Objects.requireNonNull(searchSpec);
Objects.requireNonNull(executor);
Preconditions.checkState(!mIsClosed, "AppSearchSession has already been closed");
return new SearchResults(mService, mPackageName, mDatabaseName, queryExpression,
searchSpec, mUserId, executor);
searchSpec, mUserId);
}
/**

View File

@@ -106,21 +106,15 @@ public class GlobalSearchSession implements Closeable {
* @param queryExpression query string to search.
* @param searchSpec spec for setting document filters, adding projection, setting term match
* type, etc.
* @param executor Executor on which to invoke the callback of the following request
* {@link SearchResults#getNextPage}.
* @return a {@link SearchResults} object for retrieved matched documents.
*/
@NonNull
public SearchResults search(
@NonNull String queryExpression,
@NonNull SearchSpec searchSpec,
@NonNull @CallbackExecutor Executor executor) {
public SearchResults search(@NonNull String queryExpression, @NonNull SearchSpec searchSpec) {
Objects.requireNonNull(queryExpression);
Objects.requireNonNull(searchSpec);
Objects.requireNonNull(executor);
Preconditions.checkState(!mIsClosed, "GlobalSearchSession has already been closed");
return new SearchResults(mService, mPackageName, /*databaseName=*/null, queryExpression,
searchSpec, mUserId, executor);
searchSpec, mUserId);
}
/** Closes the {@link GlobalSearchSession}. */

View File

@@ -65,8 +65,6 @@ public class SearchResults implements Closeable {
@UserIdInt
private final int mUserId;
private final Executor mExecutor;
private long mNextPageToken;
private boolean mIsFirstLoad = true;
@@ -79,15 +77,13 @@ public class SearchResults implements Closeable {
@Nullable String databaseName,
@NonNull String queryExpression,
@NonNull SearchSpec searchSpec,
@UserIdInt int userId,
@NonNull @CallbackExecutor Executor executor) {
@UserIdInt int userId) {
mService = Objects.requireNonNull(service);
mPackageName = packageName;
mDatabaseName = databaseName;
mQueryExpression = Objects.requireNonNull(queryExpression);
mSearchSpec = Objects.requireNonNull(searchSpec);
mUserId = userId;
mExecutor = Objects.requireNonNull(executor);
}
/**
@@ -98,9 +94,14 @@ public class SearchResults implements Closeable {
* <p>Continue calling this method to access results until it returns an empty list, signifying
* there are no more results.
*
* @param executor Executor on which to invoke the callback.
* @param callback Callback to receive the pending result of performing this operation.
*/
public void getNextPage(@NonNull Consumer<AppSearchResult<List<SearchResult>>> callback) {
public void getNextPage(
@NonNull @CallbackExecutor Executor executor,
@NonNull Consumer<AppSearchResult<List<SearchResult>>> callback) {
Objects.requireNonNull(executor);
Objects.requireNonNull(callback);
Preconditions.checkState(!mIsClosed, "SearchResults has already been closed");
try {
if (mIsFirstLoad) {
@@ -108,14 +109,14 @@ public class SearchResults implements Closeable {
if (mDatabaseName == null) {
// Global query, there's no one package-database combination to check.
mService.globalQuery(mPackageName, mQueryExpression,
mSearchSpec.getBundle(), mUserId, wrapCallback(callback));
mSearchSpec.getBundle(), mUserId, wrapCallback(executor, callback));
} else {
// Normal local query, pass in specified database.
mService.query(mPackageName, mDatabaseName, mQueryExpression,
mSearchSpec.getBundle(), mUserId, wrapCallback(callback));
mSearchSpec.getBundle(), mUserId, wrapCallback(executor, callback));
}
} else {
mService.getNextPage(mNextPageToken, mUserId, wrapCallback(callback));
mService.getNextPage(mNextPageToken, mUserId, wrapCallback(executor, callback));
}
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
@@ -135,10 +136,11 @@ public class SearchResults implements Closeable {
}
private IAppSearchResultCallback wrapCallback(
@NonNull @CallbackExecutor Executor executor,
@NonNull Consumer<AppSearchResult<List<SearchResult>>> callback) {
return new IAppSearchResultCallback.Stub() {
public void onResult(AppSearchResult result) {
mExecutor.execute(() -> invokeCallback(result, callback));
executor.execute(() -> invokeCallback(result, callback));
}
};
}

View File

@@ -124,8 +124,7 @@ public class AppSearchSessionShimImpl implements AppSearchSessionShim {
@NonNull
public SearchResultsShim search(
@NonNull String queryExpression, @NonNull SearchSpec searchSpec) {
SearchResults searchResults =
mAppSearchSession.search(queryExpression, searchSpec, mExecutor);
SearchResults searchResults = mAppSearchSession.search(queryExpression, searchSpec);
return new SearchResultsShimImpl(searchResults, mExecutor);
}

View File

@@ -75,8 +75,7 @@ public class GlobalSearchSessionShimImpl implements GlobalSearchSessionShim {
@Override
public SearchResultsShim search(
@NonNull String queryExpression, @NonNull SearchSpec searchSpec) {
SearchResults searchResults =
mGlobalSearchSession.search(queryExpression, searchSpec, mExecutor);
SearchResults searchResults = mGlobalSearchSession.search(queryExpression, searchSpec);
return new SearchResultsShimImpl(searchResults, mExecutor);
}

View File

@@ -47,7 +47,7 @@ public class SearchResultsShimImpl implements SearchResultsShim {
@NonNull
public ListenableFuture<List<SearchResult>> getNextPage() {
SettableFuture<AppSearchResult<List<SearchResult>>> future = SettableFuture.create();
mSearchResults.getNextPage(future::set);
mSearchResults.getNextPage(mExecutor, future::set);
return Futures.transform(future, AppSearchResult::getResultValue, mExecutor);
}