diff options
| author | Feng Cao <fengcao@google.com> | 2020-03-09 23:02:33 -0700 |
|---|---|---|
| committer | Feng Cao <fengcao@google.com> | 2020-03-11 18:11:52 -0700 |
| commit | 44dc2bdcb2119cdcb1838de356ef3bf4fd930032 (patch) | |
| tree | ad61bf9240ac5c07fabebedc7ee9d183f3ba37d2 /core/java | |
| parent | c47c4c0e13d73e6de3cfd122b6c0f19747eb9a34 (diff) | |
Properly handle InlineSuggestionsRequest with 0 max suggestion count
Test: manual, atest InlineSuggestionsRequestTest
Bug: 150142709
Change-Id: Id0bba142526641964087d29bf515b7d7a817bae0
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/android/view/inputmethod/InlineSuggestionsRequest.java | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/core/java/android/view/inputmethod/InlineSuggestionsRequest.java b/core/java/android/view/inputmethod/InlineSuggestionsRequest.java index e50da40cdc16..8e8c7dffd199 100644 --- a/core/java/android/view/inputmethod/InlineSuggestionsRequest.java +++ b/core/java/android/view/inputmethod/InlineSuggestionsRequest.java @@ -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() {} |
