Loading core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1647,6 +1647,7 @@ package android.app.cloudsearch { method public int getResultNumber(); method public int getResultOffset(); method @NonNull public android.os.Bundle getSearchConstraints(); method @NonNull public String getSource(); method public void writeToParcel(@NonNull android.os.Parcel, int); field public static final String CONSTRAINT_IS_PRESUBMIT_SUGGESTION = "IS_PRESUBMIT_SUGGESTION"; field public static final String CONSTRAINT_SEARCH_PROVIDER_FILTER = "SEARCH_PROVIDER_FILTER"; core/api/test-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -605,6 +605,14 @@ package android.app.blob { } package android.app.cloudsearch { public static final class SearchRequest.Builder { method @NonNull public android.app.cloudsearch.SearchRequest.Builder setSource(@NonNull String); } } package android.app.contentsuggestions { public final class ContentSuggestionsManager { Loading core/java/android/app/cloudsearch/SearchRequest.java +62 −18 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StringDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -91,6 +92,14 @@ public final class SearchRequest implements Parcelable { @NonNull private Bundle mSearchConstraints; /** Auto set by system servier, and the caller cannot set it. * * The caller's package name. * */ @NonNull private String mSource; private SearchRequest(Parcel in) { this.mQuery = in.readString(); this.mResultOffset = in.readInt(); Loading @@ -98,15 +107,17 @@ public final class SearchRequest implements Parcelable { this.mMaxLatencyMillis = in.readFloat(); this.mSearchConstraints = in.readBundle(); this.mId = in.readString(); this.mSource = in.readString(); } private SearchRequest(String query, int resultOffset, int resultNumber, float maxLatencyMillis, Bundle searchConstraints) { Bundle searchConstraints, String source) { mQuery = query; mResultOffset = resultOffset; mResultNumber = resultNumber; mMaxLatencyMillis = maxLatencyMillis; mSearchConstraints = searchConstraints; mSource = source; } /** Returns the original query. */ Loading Loading @@ -136,27 +147,28 @@ public final class SearchRequest implements Parcelable { return mSearchConstraints; } /** Gets the caller's package name. */ @NonNull public String getSource() { return mSource; } /** Returns the search request id, which is used to identify the request. */ @NonNull public String getRequestId() { if (mId == null || mId.length() == 0) { boolean isPresubmit = mSearchConstraints.containsKey(CONSTRAINT_IS_PRESUBMIT_SUGGESTION) && mSearchConstraints.getBoolean(CONSTRAINT_IS_PRESUBMIT_SUGGESTION); String searchProvider = "EMPTY"; if (mSearchConstraints.containsKey(CONSTRAINT_SEARCH_PROVIDER_FILTER)) { searchProvider = mSearchConstraints.getString(CONSTRAINT_SEARCH_PROVIDER_FILTER); mId = String.valueOf(toString().hashCode()); } String rawContent = String.format("%s\t%d\t%d\t%f\t%b\t%s", mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, isPresubmit, searchProvider); mId = String.valueOf(rawContent.hashCode()); return mId; } return mId; /** Sets the caller, and this will be set by the system server. * * @hide */ public void setSource(@NonNull String source) { this.mSource = source; } private SearchRequest(Builder b) { Loading @@ -165,6 +177,7 @@ public final class SearchRequest implements Parcelable { mResultNumber = b.mResultNumber; mMaxLatencyMillis = b.mMaxLatencyMillis; mSearchConstraints = requireNonNull(b.mSearchConstraints); mSource = requireNonNull(b.mSource); } /** Loading Loading @@ -192,6 +205,7 @@ public final class SearchRequest implements Parcelable { dest.writeFloat(this.mMaxLatencyMillis); dest.writeBundle(this.mSearchConstraints); dest.writeString(getRequestId()); dest.writeString(this.mSource); } @Override Loading @@ -214,13 +228,30 @@ public final class SearchRequest implements Parcelable { && mResultOffset == that.mResultOffset && mResultNumber == that.mResultNumber && mMaxLatencyMillis == that.mMaxLatencyMillis && Objects.equals(mSearchConstraints, that.mSearchConstraints); && Objects.equals(mSearchConstraints, that.mSearchConstraints) && Objects.equals(mSource, that.mSource); } @Override public String toString() { boolean isPresubmit = mSearchConstraints.containsKey(CONSTRAINT_IS_PRESUBMIT_SUGGESTION) && mSearchConstraints.getBoolean(CONSTRAINT_IS_PRESUBMIT_SUGGESTION); String searchProvider = "EMPTY"; if (mSearchConstraints.containsKey(CONSTRAINT_SEARCH_PROVIDER_FILTER)) { searchProvider = mSearchConstraints.getString(CONSTRAINT_SEARCH_PROVIDER_FILTER); } return String.format("SearchRequest: {query:%s,offset:%d;number:%d;max_latency:%f;" + "is_presubmit:%b;search_provider:%s;source:%s}", mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, isPresubmit, searchProvider, mSource); } @Override public int hashCode() { return Objects.hash(mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, mSearchConstraints); mSearchConstraints, mSource); } /** Loading @@ -235,6 +266,7 @@ public final class SearchRequest implements Parcelable { private int mResultNumber; private float mMaxLatencyMillis; private Bundle mSearchConstraints; private String mSource; /** * Loading @@ -250,6 +282,7 @@ public final class SearchRequest implements Parcelable { mResultNumber = 10; mMaxLatencyMillis = 200; mSearchConstraints = Bundle.EMPTY; mSource = "DEFAULT_CALLER"; } /** Sets the input query. */ Loading Loading @@ -288,6 +321,17 @@ public final class SearchRequest implements Parcelable { return this; } /** Sets the caller, and this will be set by the system server. * * @hide */ @NonNull @TestApi public Builder setSource(@NonNull String source) { this.mSource = source; return this; } /** Builds a SearchRequest based-on the given params. */ @NonNull public SearchRequest build() { Loading @@ -297,7 +341,7 @@ public final class SearchRequest implements Parcelable { } return new SearchRequest(mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, mSearchConstraints); mSearchConstraints, mSource); } } } services/cloudsearch/java/com/android/server/cloudsearch/CloudSearchManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -58,11 +58,14 @@ public class CloudSearchManagerService extends private final ActivityTaskManagerInternal mActivityTaskManagerInternal; private final Context mContext; public CloudSearchManagerService(Context context) { super(context, new FrameworkResourcesServiceNameResolver(context, R.string.config_defaultCloudSearchService), null, PACKAGE_UPDATE_POLICY_NO_REFRESH | PACKAGE_RESTART_POLICY_NO_REFRESH); mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class); mContext = context; } @Override Loading Loading @@ -106,6 +109,8 @@ public class CloudSearchManagerService extends @Override public void search(@NonNull SearchRequest searchRequest, @NonNull ICloudSearchManagerCallback callBack) { searchRequest.setSource( mContext.getPackageManager().getNameForUid(Binder.getCallingUid())); runForUserLocked("search", searchRequest.getRequestId(), (service) -> service.onSearchLocked(searchRequest, callBack)); } Loading Loading
core/api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -1647,6 +1647,7 @@ package android.app.cloudsearch { method public int getResultNumber(); method public int getResultOffset(); method @NonNull public android.os.Bundle getSearchConstraints(); method @NonNull public String getSource(); method public void writeToParcel(@NonNull android.os.Parcel, int); field public static final String CONSTRAINT_IS_PRESUBMIT_SUGGESTION = "IS_PRESUBMIT_SUGGESTION"; field public static final String CONSTRAINT_SEARCH_PROVIDER_FILTER = "SEARCH_PROVIDER_FILTER";
core/api/test-current.txt +8 −0 Original line number Diff line number Diff line Loading @@ -605,6 +605,14 @@ package android.app.blob { } package android.app.cloudsearch { public static final class SearchRequest.Builder { method @NonNull public android.app.cloudsearch.SearchRequest.Builder setSource(@NonNull String); } } package android.app.contentsuggestions { public final class ContentSuggestionsManager { Loading
core/java/android/app/cloudsearch/SearchRequest.java +62 −18 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.StringDef; import android.annotation.SystemApi; import android.annotation.TestApi; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; Loading Loading @@ -91,6 +92,14 @@ public final class SearchRequest implements Parcelable { @NonNull private Bundle mSearchConstraints; /** Auto set by system servier, and the caller cannot set it. * * The caller's package name. * */ @NonNull private String mSource; private SearchRequest(Parcel in) { this.mQuery = in.readString(); this.mResultOffset = in.readInt(); Loading @@ -98,15 +107,17 @@ public final class SearchRequest implements Parcelable { this.mMaxLatencyMillis = in.readFloat(); this.mSearchConstraints = in.readBundle(); this.mId = in.readString(); this.mSource = in.readString(); } private SearchRequest(String query, int resultOffset, int resultNumber, float maxLatencyMillis, Bundle searchConstraints) { Bundle searchConstraints, String source) { mQuery = query; mResultOffset = resultOffset; mResultNumber = resultNumber; mMaxLatencyMillis = maxLatencyMillis; mSearchConstraints = searchConstraints; mSource = source; } /** Returns the original query. */ Loading Loading @@ -136,27 +147,28 @@ public final class SearchRequest implements Parcelable { return mSearchConstraints; } /** Gets the caller's package name. */ @NonNull public String getSource() { return mSource; } /** Returns the search request id, which is used to identify the request. */ @NonNull public String getRequestId() { if (mId == null || mId.length() == 0) { boolean isPresubmit = mSearchConstraints.containsKey(CONSTRAINT_IS_PRESUBMIT_SUGGESTION) && mSearchConstraints.getBoolean(CONSTRAINT_IS_PRESUBMIT_SUGGESTION); String searchProvider = "EMPTY"; if (mSearchConstraints.containsKey(CONSTRAINT_SEARCH_PROVIDER_FILTER)) { searchProvider = mSearchConstraints.getString(CONSTRAINT_SEARCH_PROVIDER_FILTER); mId = String.valueOf(toString().hashCode()); } String rawContent = String.format("%s\t%d\t%d\t%f\t%b\t%s", mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, isPresubmit, searchProvider); mId = String.valueOf(rawContent.hashCode()); return mId; } return mId; /** Sets the caller, and this will be set by the system server. * * @hide */ public void setSource(@NonNull String source) { this.mSource = source; } private SearchRequest(Builder b) { Loading @@ -165,6 +177,7 @@ public final class SearchRequest implements Parcelable { mResultNumber = b.mResultNumber; mMaxLatencyMillis = b.mMaxLatencyMillis; mSearchConstraints = requireNonNull(b.mSearchConstraints); mSource = requireNonNull(b.mSource); } /** Loading Loading @@ -192,6 +205,7 @@ public final class SearchRequest implements Parcelable { dest.writeFloat(this.mMaxLatencyMillis); dest.writeBundle(this.mSearchConstraints); dest.writeString(getRequestId()); dest.writeString(this.mSource); } @Override Loading @@ -214,13 +228,30 @@ public final class SearchRequest implements Parcelable { && mResultOffset == that.mResultOffset && mResultNumber == that.mResultNumber && mMaxLatencyMillis == that.mMaxLatencyMillis && Objects.equals(mSearchConstraints, that.mSearchConstraints); && Objects.equals(mSearchConstraints, that.mSearchConstraints) && Objects.equals(mSource, that.mSource); } @Override public String toString() { boolean isPresubmit = mSearchConstraints.containsKey(CONSTRAINT_IS_PRESUBMIT_SUGGESTION) && mSearchConstraints.getBoolean(CONSTRAINT_IS_PRESUBMIT_SUGGESTION); String searchProvider = "EMPTY"; if (mSearchConstraints.containsKey(CONSTRAINT_SEARCH_PROVIDER_FILTER)) { searchProvider = mSearchConstraints.getString(CONSTRAINT_SEARCH_PROVIDER_FILTER); } return String.format("SearchRequest: {query:%s,offset:%d;number:%d;max_latency:%f;" + "is_presubmit:%b;search_provider:%s;source:%s}", mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, isPresubmit, searchProvider, mSource); } @Override public int hashCode() { return Objects.hash(mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, mSearchConstraints); mSearchConstraints, mSource); } /** Loading @@ -235,6 +266,7 @@ public final class SearchRequest implements Parcelable { private int mResultNumber; private float mMaxLatencyMillis; private Bundle mSearchConstraints; private String mSource; /** * Loading @@ -250,6 +282,7 @@ public final class SearchRequest implements Parcelable { mResultNumber = 10; mMaxLatencyMillis = 200; mSearchConstraints = Bundle.EMPTY; mSource = "DEFAULT_CALLER"; } /** Sets the input query. */ Loading Loading @@ -288,6 +321,17 @@ public final class SearchRequest implements Parcelable { return this; } /** Sets the caller, and this will be set by the system server. * * @hide */ @NonNull @TestApi public Builder setSource(@NonNull String source) { this.mSource = source; return this; } /** Builds a SearchRequest based-on the given params. */ @NonNull public SearchRequest build() { Loading @@ -297,7 +341,7 @@ public final class SearchRequest implements Parcelable { } return new SearchRequest(mQuery, mResultOffset, mResultNumber, mMaxLatencyMillis, mSearchConstraints); mSearchConstraints, mSource); } } }
services/cloudsearch/java/com/android/server/cloudsearch/CloudSearchManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -58,11 +58,14 @@ public class CloudSearchManagerService extends private final ActivityTaskManagerInternal mActivityTaskManagerInternal; private final Context mContext; public CloudSearchManagerService(Context context) { super(context, new FrameworkResourcesServiceNameResolver(context, R.string.config_defaultCloudSearchService), null, PACKAGE_UPDATE_POLICY_NO_REFRESH | PACKAGE_RESTART_POLICY_NO_REFRESH); mActivityTaskManagerInternal = LocalServices.getService(ActivityTaskManagerInternal.class); mContext = context; } @Override Loading Loading @@ -106,6 +109,8 @@ public class CloudSearchManagerService extends @Override public void search(@NonNull SearchRequest searchRequest, @NonNull ICloudSearchManagerCallback callBack) { searchRequest.setSource( mContext.getPackageManager().getNameForUid(Binder.getCallingUid())); runForUserLocked("search", searchRequest.getRequestId(), (service) -> service.onSearchLocked(searchRequest, callBack)); } Loading