Merge "Move Executor parameter into SearchResult#getNextPage." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
84e45dc691
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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}. */
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user