Properly handle InlineSuggestionsRequest with 0 max suggestion count
Test: manual, atest InlineSuggestionsRequestTest Bug: 150142709 Change-Id: Id0bba142526641964087d29bf515b7d7a817bae0
This commit is contained in:
@@ -44,15 +44,15 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
public static final int SUGGESTION_COUNT_UNLIMITED = Integer.MAX_VALUE;
|
||||
|
||||
/**
|
||||
* Max number of suggestions expected from the response. Defaults to {@code
|
||||
* SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
* Max number of suggestions expected from the response. It must be a positive value.
|
||||
* Defaults to {@code SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
*/
|
||||
private final int mMaxSuggestionCount;
|
||||
|
||||
/**
|
||||
* The {@link InlinePresentationSpec} for each suggestion in the response. If the max suggestion
|
||||
* count is larger than the number of specs in the list, then the last spec is used for the
|
||||
* remainder of the suggestions.
|
||||
* remainder of the suggestions. The list should not be empty.
|
||||
*/
|
||||
private final @NonNull List<InlinePresentationSpec> mPresentationSpecs;
|
||||
|
||||
@@ -72,6 +72,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
/**
|
||||
* The extras state propagated from the IME to pass extra data.
|
||||
*/
|
||||
@DataClass.MaySetToNull
|
||||
private @Nullable Bundle mExtras;
|
||||
|
||||
/**
|
||||
@@ -80,6 +81,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@DataClass.MaySetToNull
|
||||
private @Nullable IBinder mHostInputToken;
|
||||
|
||||
/**
|
||||
@@ -117,6 +119,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
}
|
||||
|
||||
private void onConstructed() {
|
||||
Preconditions.checkState(!mPresentationSpecs.isEmpty());
|
||||
Preconditions.checkState(mMaxSuggestionCount >= mPresentationSpecs.size());
|
||||
}
|
||||
|
||||
@@ -162,7 +165,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
|
||||
|
||||
|
||||
// Code below generated by codegen v1.0.14.
|
||||
// Code below generated by codegen v1.0.15.
|
||||
//
|
||||
// DO NOT MODIFY!
|
||||
// CHECKSTYLE:OFF Generated code
|
||||
@@ -202,8 +205,8 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Max number of suggestions expected from the response. Defaults to {@code
|
||||
* SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
* Max number of suggestions expected from the response. It must be a positive value.
|
||||
* Defaults to {@code SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
*/
|
||||
@DataClass.Generated.Member
|
||||
public int getMaxSuggestionCount() {
|
||||
@@ -213,7 +216,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
/**
|
||||
* The {@link InlinePresentationSpec} for each suggestion in the response. If the max suggestion
|
||||
* count is larger than the number of specs in the list, then the last spec is used for the
|
||||
* remainder of the suggestions.
|
||||
* remainder of the suggestions. The list should not be empty.
|
||||
*/
|
||||
@DataClass.Generated.Member
|
||||
public @NonNull List<InlinePresentationSpec> getPresentationSpecs() {
|
||||
@@ -419,7 +422,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
* @param presentationSpecs
|
||||
* The {@link InlinePresentationSpec} for each suggestion in the response. If the max suggestion
|
||||
* count is larger than the number of specs in the list, then the last spec is used for the
|
||||
* remainder of the suggestions.
|
||||
* remainder of the suggestions. The list should not be empty.
|
||||
*/
|
||||
public Builder(
|
||||
@NonNull List<InlinePresentationSpec> presentationSpecs) {
|
||||
@@ -429,8 +432,8 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Max number of suggestions expected from the response. Defaults to {@code
|
||||
* SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
* Max number of suggestions expected from the response. It must be a positive value.
|
||||
* Defaults to {@code SUGGESTION_COUNT_UNLIMITED} if not set.
|
||||
*/
|
||||
@DataClass.Generated.Member
|
||||
public @NonNull Builder setMaxSuggestionCount(int value) {
|
||||
@@ -443,7 +446,7 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
/**
|
||||
* The {@link InlinePresentationSpec} for each suggestion in the response. If the max suggestion
|
||||
* count is larger than the number of specs in the list, then the last spec is used for the
|
||||
* remainder of the suggestions.
|
||||
* remainder of the suggestions. The list should not be empty.
|
||||
*/
|
||||
@DataClass.Generated.Member
|
||||
@Override
|
||||
@@ -575,10 +578,10 @@ public final class InlineSuggestionsRequest implements Parcelable {
|
||||
}
|
||||
|
||||
@DataClass.Generated(
|
||||
time = 1582339908980L,
|
||||
codegenVersion = "1.0.14",
|
||||
time = 1583975428858L,
|
||||
codegenVersion = "1.0.15",
|
||||
sourceFile = "frameworks/base/core/java/android/view/inputmethod/InlineSuggestionsRequest.java",
|
||||
inputSignatures = "public static final int SUGGESTION_COUNT_UNLIMITED\nprivate final int mMaxSuggestionCount\nprivate final @android.annotation.NonNull java.util.List<android.view.inline.InlinePresentationSpec> mPresentationSpecs\nprivate @android.annotation.NonNull java.lang.String mHostPackageName\nprivate @android.annotation.NonNull android.os.LocaleList mSupportedLocales\nprivate @android.annotation.Nullable android.os.Bundle mExtras\nprivate @android.annotation.Nullable android.os.IBinder mHostInputToken\nprivate int mHostDisplayId\npublic void setHostInputToken(android.os.IBinder)\nprivate void parcelHostInputToken(android.os.Parcel,int)\nprivate @android.annotation.Nullable android.os.IBinder unparcelHostInputToken(android.os.Parcel)\npublic void setHostDisplayId(int)\nprivate void onConstructed()\nprivate static int defaultMaxSuggestionCount()\nprivate static java.lang.String defaultHostPackageName()\nprivate static android.os.LocaleList defaultSupportedLocales()\nprivate static @android.annotation.Nullable android.os.IBinder defaultHostInputToken()\nprivate static @android.annotation.Nullable int defaultHostDisplayId()\nprivate static @android.annotation.Nullable android.os.Bundle defaultExtras()\nclass InlineSuggestionsRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genBuilder=true)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setPresentationSpecs(java.util.List<android.view.inline.InlinePresentationSpec>)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostPackageName(java.lang.String)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostInputToken(android.os.IBinder)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostDisplayId(int)\nclass BaseBuilder extends java.lang.Object implements []")
|
||||
inputSignatures = "public static final int SUGGESTION_COUNT_UNLIMITED\nprivate final int mMaxSuggestionCount\nprivate final @android.annotation.NonNull java.util.List<android.view.inline.InlinePresentationSpec> mPresentationSpecs\nprivate @android.annotation.NonNull java.lang.String mHostPackageName\nprivate @android.annotation.NonNull android.os.LocaleList mSupportedLocales\nprivate @com.android.internal.util.DataClass.MaySetToNull @android.annotation.Nullable android.os.Bundle mExtras\nprivate @com.android.internal.util.DataClass.MaySetToNull @android.annotation.Nullable android.os.IBinder mHostInputToken\nprivate int mHostDisplayId\npublic void setHostInputToken(android.os.IBinder)\nprivate void parcelHostInputToken(android.os.Parcel,int)\nprivate @android.annotation.Nullable android.os.IBinder unparcelHostInputToken(android.os.Parcel)\npublic void setHostDisplayId(int)\nprivate void onConstructed()\nprivate static int defaultMaxSuggestionCount()\nprivate static java.lang.String defaultHostPackageName()\nprivate static android.os.LocaleList defaultSupportedLocales()\nprivate static @android.annotation.Nullable android.os.IBinder defaultHostInputToken()\nprivate static @android.annotation.Nullable int defaultHostDisplayId()\nprivate static @android.annotation.Nullable android.os.Bundle defaultExtras()\nclass InlineSuggestionsRequest extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genBuilder=true)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setPresentationSpecs(java.util.List<android.view.inline.InlinePresentationSpec>)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostPackageName(java.lang.String)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostInputToken(android.os.IBinder)\nabstract android.view.inputmethod.InlineSuggestionsRequest.Builder setHostDisplayId(int)\nclass BaseBuilder extends java.lang.Object implements []")
|
||||
@Deprecated
|
||||
private void __metadata() {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user