Merge "Sync Framework from Jetpack"

This commit is contained in:
Terry Wang
2021-01-16 01:29:26 +00:00
committed by Android (Google) Code Review
4 changed files with 21 additions and 8 deletions

View File

@@ -80,7 +80,8 @@ package android.app.appsearch {
method @NonNull public android.app.appsearch.AppSearchSchema.PropertyConfig.Builder setTokenizerType(int);
}
public final class AppSearchSession {
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 getSchema(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<android.app.appsearch.AppSearchResult<java.util.Set<android.app.appsearch.AppSearchSchema>>>);
method public void putDocuments(@NonNull android.app.appsearch.PutDocumentsRequest, @NonNull java.util.concurrent.Executor, @NonNull android.app.appsearch.BatchResultCallback<java.lang.String,java.lang.Void>);

View File

@@ -9,7 +9,8 @@ package android.app.appsearch {
method public static void initialize();
}
public class GlobalSearchSession {
public class GlobalSearchSession implements java.io.Closeable {
method public void close();
method @NonNull public android.app.appsearch.SearchResults query(@NonNull String, @NonNull android.app.appsearch.SearchSpec, @NonNull java.util.concurrent.Executor);
}

View File

@@ -28,6 +28,7 @@ import android.util.Log;
import com.android.internal.util.Preconditions;
import java.io.Closeable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -42,7 +43,7 @@ import java.util.function.Consumer;
*
* This class is thread safe.
*/
public final class AppSearchSession {
public final class AppSearchSession implements Closeable {
private static final String TAG = "AppSearchSession";
private final String mDatabaseName;
@UserIdInt
@@ -490,11 +491,10 @@ public final class AppSearchSession {
}
/**
* Closes the SearchSessionImpl to persists all update/delete requests to the disk.
*
* @hide
* Closes the {@link AppSearchSession} to persist all schema and document updates, additions,
* and deletes to disk.
*/
// TODO(b/175637134) when unhide it, implement Closeable and remove this method.
@Override
public void close() {
if (mIsMutated && !mIsClosed) {
try {

View File

@@ -23,6 +23,9 @@ import android.annotation.SystemApi;
import android.annotation.UserIdInt;
import android.os.RemoteException;
import com.android.internal.util.Preconditions;
import java.io.Closeable;
import java.util.Objects;
import java.util.concurrent.Executor;
import java.util.function.Consumer;
@@ -34,11 +37,12 @@ import java.util.function.Consumer;
* @hide
*/
@SystemApi
public class GlobalSearchSession {
public class GlobalSearchSession implements Closeable {
private final IAppSearchManager mService;
@UserIdInt
private final int mUserId;
private boolean mIsClosed = false;
static void createGlobalSearchSession(
@NonNull IAppSearchManager service,
@@ -129,7 +133,14 @@ public class GlobalSearchSession {
Objects.requireNonNull(queryExpression);
Objects.requireNonNull(searchSpec);
Objects.requireNonNull(executor);
Preconditions.checkState(!mIsClosed, "GlobalSearchSession has already been closed");
return new SearchResults(mService, /*databaseName=*/null, queryExpression,
searchSpec, mUserId, executor);
}
/** Closes the {@link GlobalSearchSession}. */
@Override
public void close() {
mIsClosed = true;
}
}