summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alexander Dorokhine <adorokhine@google.com> 2021-05-03 19:33:55 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-05-03 19:33:55 +0000
commite78d13af99415cbbdd9e1256c8046a0fddaeec8a (patch)
tree398ef30631278f5a3aaa00f4d7954f23ba91ff57
parent9f8a57ebf5b991a81d4d2f441b15e7d19a929aaf (diff)
parentb10c5162c4168038a09a702e155e22b0062a2085 (diff)
Merge "Temporarily re-add methods and classes removed in ag/1420175." into sc-dev
-rw-r--r--apex/appsearch/framework/Android.bp3
-rw-r--r--apex/appsearch/framework/java/android/app/appsearch/AppSearchSession.java27
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/AppSearchSchema.java38
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/GenericDocument.java12
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/GetByUriRequest.java200
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/RemoveByUriRequest.java125
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/ReportUsageRequest.java38
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/SearchResult.java2
-rw-r--r--apex/appsearch/framework/java/external/android/app/appsearch/SetSchemaResponse.java12
9 files changed, 454 insertions, 3 deletions
diff --git a/apex/appsearch/framework/Android.bp b/apex/appsearch/framework/Android.bp
index 5def55fd31ff..5bf0b84b570d 100644
--- a/apex/appsearch/framework/Android.bp
+++ b/apex/appsearch/framework/Android.bp
@@ -33,9 +33,10 @@ filegroup {
java_sdk_library {
name: "framework-appsearch",
- srcs: [ ":framework-appsearch-sources" ],
+ srcs: [":framework-appsearch-sources"],
sdk_version: "core_platform", // TODO(b/146218515) should be module_current
impl_only_libs: ["framework-minus-apex"], // TODO(b/146218515) should be removed
+ libs: ["unsupportedappusage"], // TODO(b/181887768) should be removed
defaults: ["framework-module-defaults"],
permitted_packages: ["android.app.appsearch"],
aidl: {
diff --git a/apex/appsearch/framework/java/android/app/appsearch/AppSearchSession.java b/apex/appsearch/framework/java/android/app/appsearch/AppSearchSession.java
index 64ac63c2b849..c112d0efc209 100644
--- a/apex/appsearch/framework/java/android/app/appsearch/AppSearchSession.java
+++ b/apex/appsearch/framework/java/android/app/appsearch/AppSearchSession.java
@@ -21,6 +21,7 @@ import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.app.appsearch.exceptions.AppSearchException;
import android.app.appsearch.util.SchemaMigrationUtil;
+import android.compat.annotation.UnsupportedAppUsage;
import android.os.Bundle;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -295,6 +296,19 @@ public final class AppSearchSession implements Closeable {
}
/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public void getByUri(
+ @NonNull GetByUriRequest request,
+ @NonNull @CallbackExecutor Executor executor,
+ @NonNull BatchResultCallback<String, GenericDocument> callback) {
+ getByDocumentId(request.toGetByDocumentIdRequest(), executor, callback);
+ }
+
+ /**
* Gets {@link GenericDocument} objects by document IDs in a namespace from the {@link
* AppSearchSession} database.
*
@@ -489,6 +503,19 @@ public final class AppSearchSession implements Closeable {
}
/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public void remove(
+ @NonNull RemoveByUriRequest request,
+ @NonNull @CallbackExecutor Executor executor,
+ @NonNull BatchResultCallback<String, Void> callback) {
+ remove(request.toRemoveByDocumentIdRequest(), executor, callback);
+ }
+
+ /**
* Removes {@link GenericDocument} objects by document IDs in a namespace from the {@link
* AppSearchSession} database.
*
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/AppSearchSchema.java b/apex/appsearch/framework/java/external/android/app/appsearch/AppSearchSchema.java
index 2a941fb54833..4378a9811f12 100644
--- a/apex/appsearch/framework/java/external/android/app/appsearch/AppSearchSchema.java
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/AppSearchSchema.java
@@ -21,6 +21,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.appsearch.exceptions.IllegalSchemaException;
import android.app.appsearch.util.BundleUtil;
+import android.compat.annotation.UnsupportedAppUsage;
import android.os.Bundle;
import android.util.ArraySet;
@@ -747,6 +748,31 @@ public final class AppSearchSchema {
}
/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public Builder(@NonNull String propertyName) {
+ mBundle.putString(NAME_FIELD, propertyName);
+ mBundle.putInt(DATA_TYPE_FIELD, DATA_TYPE_DOCUMENT);
+ mBundle.putInt(CARDINALITY_FIELD, CARDINALITY_OPTIONAL);
+ mBundle.putBoolean(INDEX_NESTED_PROPERTIES_FIELD, false);
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public Builder setSchemaType(@NonNull String schemaType) {
+ mBundle.putString(SCHEMA_TYPE_FIELD, schemaType);
+ return this;
+ }
+
+ /**
* The cardinality of the property (whether it is optional, required or repeated).
*
* <p>If this method is not called, the default cardinality is {@link
@@ -778,6 +804,18 @@ public final class AppSearchSchema {
}
/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public DocumentPropertyConfig.Builder setIndexNestedProperties(
+ boolean indexNestedProperties) {
+ return setShouldIndexNestedProperties(indexNestedProperties);
+ }
+
+ /**
* Constructs a new {@link PropertyConfig} from the contents of this builder.
*
* <p>After calling this method, the builder must no longer be used.
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/GenericDocument.java b/apex/appsearch/framework/java/external/android/app/appsearch/GenericDocument.java
index 2e427497e16d..39a48847d1c2 100644
--- a/apex/appsearch/framework/java/external/android/app/appsearch/GenericDocument.java
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/GenericDocument.java
@@ -22,6 +22,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.app.appsearch.util.BundleUtil;
+import android.compat.annotation.UnsupportedAppUsage;
import android.os.Bundle;
import android.os.Parcelable;
import android.util.Log;
@@ -137,6 +138,17 @@ public class GenericDocument {
return mBundle;
}
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public String getUri() {
+ return getId();
+ }
+
/** Returns the unique identifier of the {@link GenericDocument}. */
@NonNull
public String getId() {
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/GetByUriRequest.java b/apex/appsearch/framework/java/external/android/app/appsearch/GetByUriRequest.java
new file mode 100644
index 000000000000..7b05eac43070
--- /dev/null
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/GetByUriRequest.java
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.appsearch;
+
+import android.annotation.NonNull;
+import android.compat.annotation.UnsupportedAppUsage;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+@Deprecated
+public final class GetByUriRequest {
+ /**
+ * Schema type to be used in {@link GetByUriRequest.Builder#addProjection} to apply property
+ * paths to all results, excepting any types that have had their own, specific property paths
+ * set.
+ */
+ public static final String PROJECTION_SCHEMA_TYPE_WILDCARD = "*";
+
+ private final String mNamespace;
+ private final Set<String> mIds;
+ private final Map<String, List<String>> mTypePropertyPathsMap;
+
+ GetByUriRequest(
+ @NonNull String namespace,
+ @NonNull Set<String> ids,
+ @NonNull Map<String, List<String>> typePropertyPathsMap) {
+ mNamespace = Objects.requireNonNull(namespace);
+ mIds = Objects.requireNonNull(ids);
+ mTypePropertyPathsMap = Objects.requireNonNull(typePropertyPathsMap);
+ }
+
+ /** Returns the namespace attached to the request. */
+ @NonNull
+ public String getNamespace() {
+ return mNamespace;
+ }
+
+ /** Returns the set of document IDs attached to the request. */
+ @NonNull
+ public Set<String> getUris() {
+ return Collections.unmodifiableSet(mIds);
+ }
+
+ /**
+ * Returns a map from schema type to property paths to be used for projection.
+ *
+ * <p>If the map is empty, then all properties will be retrieved for all results.
+ *
+ * <p>Calling this function repeatedly is inefficient. Prefer to retain the Map returned by this
+ * function, rather than calling it multiple times.
+ */
+ @NonNull
+ public Map<String, List<String>> getProjections() {
+ Map<String, List<String>> copy = new ArrayMap<>();
+ for (Map.Entry<String, List<String>> entry : mTypePropertyPathsMap.entrySet()) {
+ copy.put(entry.getKey(), new ArrayList<>(entry.getValue()));
+ }
+ return copy;
+ }
+
+ /**
+ * Returns a map from schema type to property paths to be used for projection.
+ *
+ * <p>If the map is empty, then all properties will be retrieved for all results.
+ *
+ * <p>A more efficient version of {@link #getProjections}, but it returns a modifiable map. This
+ * is not meant to be unhidden and should only be used by internal classes.
+ *
+ * @hide
+ */
+ @NonNull
+ public Map<String, List<String>> getProjectionsInternal() {
+ return mTypePropertyPathsMap;
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @NonNull
+ public GetByDocumentIdRequest toGetByDocumentIdRequest() {
+ GetByDocumentIdRequest.Builder builder =
+ new GetByDocumentIdRequest.Builder(mNamespace).addIds(mIds);
+ for (Map.Entry<String, List<String>> projection : mTypePropertyPathsMap.entrySet()) {
+ builder.addProjection(projection.getKey(), projection.getValue());
+ }
+ return builder.build();
+ }
+
+ /**
+ * Builder for {@link GetByUriRequest} objects.
+ *
+ * <p>Once {@link #build} is called, the instance can no longer be used.
+ */
+ public static final class Builder {
+ private final String mNamespace;
+ private final Set<String> mIds = new ArraySet<>();
+ private final Map<String, List<String>> mProjectionTypePropertyPaths = new ArrayMap<>();
+ private boolean mBuilt = false;
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public Builder(@NonNull String namespace) {
+ mNamespace = Objects.requireNonNull(namespace);
+ }
+
+ /**
+ * Adds one or more document IDs to the request.
+ *
+ * @throws IllegalStateException if the builder has already been used.
+ */
+ @NonNull
+ public Builder addUris(@NonNull String... ids) {
+ Objects.requireNonNull(ids);
+ return addUris(Arrays.asList(ids));
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public Builder addUris(@NonNull Collection<String> ids) {
+ Preconditions.checkState(!mBuilt, "Builder has already been used");
+ Objects.requireNonNull(ids);
+ mIds.addAll(ids);
+ return this;
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public Builder addProjection(
+ @NonNull String schemaType, @NonNull Collection<String> propertyPaths) {
+ Preconditions.checkState(!mBuilt, "Builder has already been used");
+ Objects.requireNonNull(schemaType);
+ Objects.requireNonNull(propertyPaths);
+ List<String> propertyPathsList = new ArrayList<>(propertyPaths.size());
+ for (String propertyPath : propertyPaths) {
+ Objects.requireNonNull(propertyPath);
+ propertyPathsList.add(propertyPath);
+ }
+ mProjectionTypePropertyPaths.put(schemaType, propertyPathsList);
+ return this;
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public GetByUriRequest build() {
+ Preconditions.checkState(!mBuilt, "Builder has already been used");
+ mBuilt = true;
+ return new GetByUriRequest(mNamespace, mIds, mProjectionTypePropertyPaths);
+ }
+ }
+}
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/RemoveByUriRequest.java b/apex/appsearch/framework/java/external/android/app/appsearch/RemoveByUriRequest.java
new file mode 100644
index 000000000000..9c74966ada58
--- /dev/null
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/RemoveByUriRequest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app.appsearch;
+
+import android.annotation.NonNull;
+import android.compat.annotation.UnsupportedAppUsage;
+import android.util.ArraySet;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Objects;
+import java.util.Set;
+
+/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+@Deprecated
+public final class RemoveByUriRequest {
+ private final String mNamespace;
+ private final Set<String> mIds;
+
+ RemoveByUriRequest(String namespace, Set<String> ids) {
+ mNamespace = namespace;
+ mIds = ids;
+ }
+
+ /** Returns the namespace to remove documents from. */
+ @NonNull
+ public String getNamespace() {
+ return mNamespace;
+ }
+
+ /** Returns the set of document IDs attached to the request. */
+ @NonNull
+ public Set<String> getUris() {
+ return Collections.unmodifiableSet(mIds);
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @NonNull
+ public RemoveByDocumentIdRequest toRemoveByDocumentIdRequest() {
+ return new RemoveByDocumentIdRequest.Builder(mNamespace).addIds(mIds).build();
+ }
+
+ /**
+ * Builder for {@link RemoveByUriRequest} objects.
+ *
+ * <p>Once {@link #build} is called, the instance can no longer be used.
+ */
+ public static final class Builder {
+ private final String mNamespace;
+ private final Set<String> mIds = new ArraySet<>();
+ private boolean mBuilt = false;
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public Builder(@NonNull String namespace) {
+ mNamespace = Objects.requireNonNull(namespace);
+ }
+
+ /**
+ * Adds one or more document IDs to the request.
+ *
+ * @throws IllegalStateException if the builder has already been used.
+ */
+ @NonNull
+ public Builder addUris(@NonNull String... ids) {
+ Objects.requireNonNull(ids);
+ return addUris(Arrays.asList(ids));
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public Builder addUris(@NonNull Collection<String> ids) {
+ Preconditions.checkState(!mBuilt, "Builder has already been used");
+ Objects.requireNonNull(ids);
+ mIds.addAll(ids);
+ return this;
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public RemoveByUriRequest build() {
+ Preconditions.checkState(!mBuilt, "Builder has already been used");
+ mBuilt = true;
+ return new RemoveByUriRequest(mNamespace, mIds);
+ }
+ }
+}
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/ReportUsageRequest.java b/apex/appsearch/framework/java/external/android/app/appsearch/ReportUsageRequest.java
index 8c8ade8c52d0..5cb59b3030ee 100644
--- a/apex/appsearch/framework/java/external/android/app/appsearch/ReportUsageRequest.java
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/ReportUsageRequest.java
@@ -18,6 +18,7 @@ package android.app.appsearch;
import android.annotation.CurrentTimeMillisLong;
import android.annotation.NonNull;
+import android.compat.annotation.UnsupportedAppUsage;
import com.android.internal.util.Preconditions;
@@ -68,7 +69,8 @@ public final class ReportUsageRequest {
/** Builder for {@link ReportUsageRequest} objects. */
public static final class Builder {
private final String mNamespace;
- private final String mDocumentId;
+ // TODO(b/181887768): Make this final
+ private String mDocumentId;
private Long mUsageTimestampMillis;
private boolean mBuilt = false;
@@ -79,6 +81,40 @@ public final class ReportUsageRequest {
}
/**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ public Builder(@NonNull String namespace) {
+ mNamespace = Objects.requireNonNull(namespace);
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public Builder setUri(@NonNull String uri) {
+ mDocumentId = uri;
+ return this;
+ }
+
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public ReportUsageRequest.Builder setUsageTimeMillis(
+ @CurrentTimeMillisLong long usageTimestampMillis) {
+ return setUsageTimestampMillis(usageTimestampMillis);
+ }
+
+ /**
* Sets the timestamp in milliseconds of the usage report (the time at which the document
* was used).
*
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/SearchResult.java b/apex/appsearch/framework/java/external/android/app/appsearch/SearchResult.java
index b648071a93c1..9a1796cbe94e 100644
--- a/apex/appsearch/framework/java/external/android/app/appsearch/SearchResult.java
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/SearchResult.java
@@ -192,7 +192,7 @@ public final class SearchResult {
return this;
}
- /** @deprecated this method exists only for dogfooder transition and must be removed */
+ /** @deprecated This method exists only for dogfooder transition and must be removed. */
@Deprecated
@NonNull
public Builder addMatch(@NonNull MatchInfo matchInfo) {
diff --git a/apex/appsearch/framework/java/external/android/app/appsearch/SetSchemaResponse.java b/apex/appsearch/framework/java/external/android/app/appsearch/SetSchemaResponse.java
index b7bd3878d4fa..7ad5fe877480 100644
--- a/apex/appsearch/framework/java/external/android/app/appsearch/SetSchemaResponse.java
+++ b/apex/appsearch/framework/java/external/android/app/appsearch/SetSchemaResponse.java
@@ -18,6 +18,7 @@ package android.app.appsearch;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.compat.annotation.UnsupportedAppUsage;
import android.os.Bundle;
import android.util.ArraySet;
@@ -324,6 +325,17 @@ public class SetSchemaResponse {
return mBundle.getString(NAMESPACE_FIELD, /*defaultValue=*/ "");
}
+ /**
+ * @deprecated TODO(b/181887768): Exists for dogfood transition; must be removed.
+ * @hide
+ */
+ @Deprecated
+ @UnsupportedAppUsage
+ @NonNull
+ public String getUri() {
+ return getDocumentId();
+ }
+
/** Returns the id of the {@link GenericDocument} that failed to be migrated. */
@NonNull
public String getDocumentId() {