diff options
| author | 2020-02-14 19:27:46 -0800 | |
|---|---|---|
| committer | 2020-02-17 11:17:22 -0800 | |
| commit | 5f7e99e5d8263c22c5f3e8b031d1e55b78412f3a (patch) | |
| tree | 1b76ba09c39c2f427eabe8313b051b13a6b93a2c | |
| parent | cce9df2afc3edc9a58a97dbd3746c5d2acb217a9 (diff) | |
Add the locale field and an extra Bundle to the InlineSuggestionsRequest.
* The extra can be used to indicate the UI rendering library version, as well as anything else we may need after API freeze
* Also make the style in InlinePresentaionSpec publically accessible
Test: build
Bug: 146454892
Change-Id: Iaaf66c2dcffdef3ef8e91c347774afa3aa6176f9
| -rw-r--r-- | api/current.txt | 5 | ||||
| -rwxr-xr-x | api/system-current.txt | 8 | ||||
| -rw-r--r-- | core/java/android/view/inline/InlinePresentationSpec.java | 25 | ||||
| -rw-r--r-- | core/java/android/view/inputmethod/InlineSuggestionsRequest.java | 119 |
4 files changed, 121 insertions, 36 deletions
diff --git a/api/current.txt b/api/current.txt index 7bfd9a403ae9..b9d29c8e5f8f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -56479,6 +56479,7 @@ package android.view.inline { method public int describeContents(); method @NonNull public android.util.Size getMaxSize(); method @NonNull public android.util.Size getMinSize(); + method @Nullable public String getStyle(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.inline.InlinePresentationSpec> CREATOR; } @@ -56683,9 +56684,11 @@ package android.view.inputmethod { public final class InlineSuggestionsRequest implements android.os.Parcelable { method public int describeContents(); + method @Nullable public android.os.Bundle getExtras(); method @NonNull public String getHostPackageName(); method public int getMaxSuggestionCount(); method @NonNull public java.util.List<android.view.inline.InlinePresentationSpec> getPresentationSpecs(); + method @NonNull public android.os.LocaleList getSupportedLocales(); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.view.inputmethod.InlineSuggestionsRequest> CREATOR; field public static final int SUGGESTION_COUNT_UNLIMITED = 2147483647; // 0x7fffffff @@ -56695,7 +56698,9 @@ package android.view.inputmethod { ctor public InlineSuggestionsRequest.Builder(@NonNull java.util.List<android.view.inline.InlinePresentationSpec>); method @NonNull public android.view.inputmethod.InlineSuggestionsRequest.Builder addPresentationSpecs(@NonNull android.view.inline.InlinePresentationSpec); method @NonNull public android.view.inputmethod.InlineSuggestionsRequest build(); + method @NonNull public android.view.inputmethod.InlineSuggestionsRequest.Builder setExtras(@Nullable android.os.Bundle); method @NonNull public android.view.inputmethod.InlineSuggestionsRequest.Builder setMaxSuggestionCount(int); + method @NonNull public android.view.inputmethod.InlineSuggestionsRequest.Builder setSupportedLocales(@NonNull android.os.LocaleList); } public final class InlineSuggestionsResponse implements android.os.Parcelable { diff --git a/api/system-current.txt b/api/system-current.txt index 773cd4d1cf04..5b6bd21acede 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -14081,14 +14081,6 @@ package android.view.contentcapture { } -package android.view.inline { - - public final class InlinePresentationSpec implements android.os.Parcelable { - method @Nullable public String getStyle(); - } - -} - package android.webkit { public abstract class CookieManager { diff --git a/core/java/android/view/inline/InlinePresentationSpec.java b/core/java/android/view/inline/InlinePresentationSpec.java index 406e599a67fb..8bda339bea16 100644 --- a/core/java/android/view/inline/InlinePresentationSpec.java +++ b/core/java/android/view/inline/InlinePresentationSpec.java @@ -18,7 +18,6 @@ package android.view.inline; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.SystemApi; import android.os.Parcelable; import android.util.Size; @@ -53,15 +52,6 @@ public final class InlinePresentationSpec implements Parcelable { return null; } - /** - * @hide - */ - @SystemApi - public @Nullable String getStyle() { - return mStyle; - } - - /** @hide */ @DataClass.Suppress({"setMaxSize", "setMinSize"}) abstract static class BaseBuilder { @@ -114,6 +104,17 @@ public final class InlinePresentationSpec implements Parcelable { return mMaxSize; } + /** + * The fully qualified resource name of the UI style resource identifier, defaults to {@code + * null}. + * + * <p> The value can be obtained by calling {@code Resources#getResourceName(int)}. + */ + @DataClass.Generated.Member + public @Nullable String getStyle() { + return mStyle; + } + @Override @DataClass.Generated.Member public String toString() { @@ -283,10 +284,10 @@ public final class InlinePresentationSpec implements Parcelable { } @DataClass.Generated( - time = 1581117017522L, + time = 1581736227796L, codegenVersion = "1.0.14", sourceFile = "frameworks/base/core/java/android/view/inline/InlinePresentationSpec.java", - inputSignatures = "private final @android.annotation.NonNull android.util.Size mMinSize\nprivate final @android.annotation.NonNull android.util.Size mMaxSize\nprivate final @android.annotation.Nullable java.lang.String mStyle\nprivate static java.lang.String defaultStyle()\npublic @android.annotation.SystemApi @android.annotation.Nullable java.lang.String getStyle()\nclass InlinePresentationSpec extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genBuilder=true)\nclass BaseBuilder extends java.lang.Object implements []") + inputSignatures = "private final @android.annotation.NonNull android.util.Size mMinSize\nprivate final @android.annotation.NonNull android.util.Size mMaxSize\nprivate final @android.annotation.Nullable java.lang.String mStyle\nprivate static java.lang.String defaultStyle()\nclass InlinePresentationSpec extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genEqualsHashCode=true, genToString=true, genBuilder=true)\nclass BaseBuilder extends java.lang.Object implements []") @Deprecated private void __metadata() {} diff --git a/core/java/android/view/inputmethod/InlineSuggestionsRequest.java b/core/java/android/view/inputmethod/InlineSuggestionsRequest.java index be9370a7e2af..5700dda3a2e3 100644 --- a/core/java/android/view/inputmethod/InlineSuggestionsRequest.java +++ b/core/java/android/view/inputmethod/InlineSuggestionsRequest.java @@ -19,7 +19,9 @@ package android.view.inputmethod; import android.annotation.NonNull; import android.annotation.Nullable; import android.app.ActivityThread; +import android.os.Bundle; import android.os.IBinder; +import android.os.LocaleList; import android.os.Parcelable; import android.view.inline.InlinePresentationSpec; @@ -60,6 +62,13 @@ public final class InlineSuggestionsRequest implements Parcelable { private @NonNull String mHostPackageName; /** + * The IME provided locales for the request. If non-empty, the inline suggestions should + * return languages from the supported locales. If not provided, it'll default to system locale. + */ + private @NonNull LocaleList mSupportedLocales; + + // TODO(b/149609075): the generated code needs to be manually fixed due to the bug. + /** * The host input token of the IME that made the request. This will be set by the system for * safety reasons. * @@ -68,12 +77,9 @@ public final class InlineSuggestionsRequest implements Parcelable { private @Nullable IBinder mHostInputToken; /** - * @hide - * @see {@link #mHostPackageName}. + * The extras state propagated from the IME to pass extra data. */ - public void setHostPackageName(@NonNull String hostPackageName) { - mHostPackageName = hostPackageName; - } + private @Nullable Bundle mExtras; /** * @hide @@ -95,10 +101,20 @@ public final class InlineSuggestionsRequest implements Parcelable { return ActivityThread.currentPackageName(); } + private static LocaleList defaultSupportedLocales() { + return LocaleList.getDefault(); + } + + @Nullable private static IBinder defaultHostInputToken() { return null; } + @Nullable + private static Bundle defaultExtras() { + return null; + } + /** @hide */ abstract static class BaseBuilder { abstract Builder setPresentationSpecs(@NonNull List<InlinePresentationSpec> value); @@ -128,7 +144,9 @@ public final class InlineSuggestionsRequest implements Parcelable { int maxSuggestionCount, @NonNull List<InlinePresentationSpec> presentationSpecs, @NonNull String hostPackageName, - @Nullable IBinder hostInputToken) { + @NonNull LocaleList supportedLocales, + @Nullable IBinder hostInputToken, + @Nullable Bundle extras) { this.mMaxSuggestionCount = maxSuggestionCount; this.mPresentationSpecs = presentationSpecs; com.android.internal.util.AnnotationValidations.validate( @@ -136,7 +154,11 @@ public final class InlineSuggestionsRequest implements Parcelable { this.mHostPackageName = hostPackageName; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mHostPackageName); + this.mSupportedLocales = supportedLocales; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mSupportedLocales); this.mHostInputToken = hostInputToken; + this.mExtras = extras; onConstructed(); } @@ -171,6 +193,15 @@ public final class InlineSuggestionsRequest implements Parcelable { } /** + * The IME provided locales for the request. If non-empty, the inline suggestions should + * return languages from the supported locales. If not provided, it'll default to system locale. + */ + @DataClass.Generated.Member + public @NonNull LocaleList getSupportedLocales() { + return mSupportedLocales; + } + + /** * The host input token of the IME that made the request. This will be set by the system for * safety reasons. * @@ -181,6 +212,14 @@ public final class InlineSuggestionsRequest implements Parcelable { return mHostInputToken; } + /** + * The extras state propagated from the IME to pass extra data. + */ + @DataClass.Generated.Member + public @Nullable Bundle getExtras() { + return mExtras; + } + @Override @DataClass.Generated.Member public String toString() { @@ -191,7 +230,9 @@ public final class InlineSuggestionsRequest implements Parcelable { "maxSuggestionCount = " + mMaxSuggestionCount + ", " + "presentationSpecs = " + mPresentationSpecs + ", " + "hostPackageName = " + mHostPackageName + ", " + - "hostInputToken = " + mHostInputToken + + "supportedLocales = " + mSupportedLocales + ", " + + "hostInputToken = " + mHostInputToken + ", " + + "extras = " + mExtras + " }"; } @@ -211,7 +252,9 @@ public final class InlineSuggestionsRequest implements Parcelable { && mMaxSuggestionCount == that.mMaxSuggestionCount && java.util.Objects.equals(mPresentationSpecs, that.mPresentationSpecs) && java.util.Objects.equals(mHostPackageName, that.mHostPackageName) - && java.util.Objects.equals(mHostInputToken, that.mHostInputToken); + && java.util.Objects.equals(mSupportedLocales, that.mSupportedLocales) + && java.util.Objects.equals(mHostInputToken, that.mHostInputToken) + && java.util.Objects.equals(mExtras, that.mExtras); } @Override @@ -224,7 +267,9 @@ public final class InlineSuggestionsRequest implements Parcelable { _hash = 31 * _hash + mMaxSuggestionCount; _hash = 31 * _hash + java.util.Objects.hashCode(mPresentationSpecs); _hash = 31 * _hash + java.util.Objects.hashCode(mHostPackageName); + _hash = 31 * _hash + java.util.Objects.hashCode(mSupportedLocales); _hash = 31 * _hash + java.util.Objects.hashCode(mHostInputToken); + _hash = 31 * _hash + java.util.Objects.hashCode(mExtras); return _hash; } @@ -235,12 +280,15 @@ public final class InlineSuggestionsRequest implements Parcelable { // void parcelFieldName(Parcel dest, int flags) { ... } byte flg = 0; - if (mHostInputToken != null) flg |= 0x8; + if (mHostInputToken != null) flg |= 0x10; + if (mExtras != null) flg |= 0x20; dest.writeByte(flg); dest.writeInt(mMaxSuggestionCount); dest.writeParcelableList(mPresentationSpecs, flags); dest.writeString(mHostPackageName); + dest.writeTypedObject(mSupportedLocales, flags); if (mHostInputToken != null) dest.writeStrongBinder(mHostInputToken); + if (mExtras != null) dest.writeBundle(mExtras); } @Override @@ -259,7 +307,9 @@ public final class InlineSuggestionsRequest implements Parcelable { List<InlinePresentationSpec> presentationSpecs = new ArrayList<>(); in.readParcelableList(presentationSpecs, InlinePresentationSpec.class.getClassLoader()); String hostPackageName = in.readString(); - IBinder hostInputToken = (flg & 0x8) == 0 ? null : in.readStrongBinder(); + LocaleList supportedLocales = (LocaleList) in.readTypedObject(LocaleList.CREATOR); + IBinder hostInputToken = (flg & 0x10) == 0 ? null : in.readStrongBinder(); + Bundle extras = (flg & 0x20) == 0 ? null : in.readBundle(); this.mMaxSuggestionCount = maxSuggestionCount; this.mPresentationSpecs = presentationSpecs; @@ -268,7 +318,11 @@ public final class InlineSuggestionsRequest implements Parcelable { this.mHostPackageName = hostPackageName; com.android.internal.util.AnnotationValidations.validate( NonNull.class, null, mHostPackageName); + this.mSupportedLocales = supportedLocales; + com.android.internal.util.AnnotationValidations.validate( + NonNull.class, null, mSupportedLocales); this.mHostInputToken = hostInputToken; + this.mExtras = extras; onConstructed(); } @@ -297,7 +351,9 @@ public final class InlineSuggestionsRequest implements Parcelable { private int mMaxSuggestionCount; private @NonNull List<InlinePresentationSpec> mPresentationSpecs; private @NonNull String mHostPackageName; + private @NonNull LocaleList mSupportedLocales; private @Nullable IBinder mHostInputToken; + private @Nullable Bundle mExtras; private long mBuilderFieldsSet = 0L; @@ -368,6 +424,18 @@ public final class InlineSuggestionsRequest implements Parcelable { } /** + * The IME provided locales for the request. If non-empty, the inline suggestions should + * return languages from the supported locales. If not provided, it'll default to system locale. + */ + @DataClass.Generated.Member + public @NonNull Builder setSupportedLocales(@NonNull LocaleList value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x8; + mSupportedLocales = value; + return this; + } + + /** * The host input token of the IME that made the request. This will be set by the system for * safety reasons. * @@ -377,15 +445,26 @@ public final class InlineSuggestionsRequest implements Parcelable { @Override @NonNull Builder setHostInputToken(@Nullable IBinder value) { checkNotUsed(); - mBuilderFieldsSet |= 0x8; + mBuilderFieldsSet |= 0x10; mHostInputToken = value; return this; } + /** + * The extras state propagated from the IME to pass extra data. + */ + @DataClass.Generated.Member + public @NonNull Builder setExtras(@Nullable Bundle value) { + checkNotUsed(); + mBuilderFieldsSet |= 0x20; + mExtras = value; + return this; + } + /** Builds the instance. This builder should not be touched after calling this! */ public @NonNull InlineSuggestionsRequest build() { checkNotUsed(); - mBuilderFieldsSet |= 0x10; // Mark builder used + mBuilderFieldsSet |= 0x40; // Mark builder used if ((mBuilderFieldsSet & 0x1) == 0) { mMaxSuggestionCount = defaultMaxSuggestionCount(); @@ -394,18 +473,26 @@ public final class InlineSuggestionsRequest implements Parcelable { mHostPackageName = defaultHostPackageName(); } if ((mBuilderFieldsSet & 0x8) == 0) { + mSupportedLocales = defaultSupportedLocales(); + } + if ((mBuilderFieldsSet & 0x10) == 0) { mHostInputToken = defaultHostInputToken(); } + if ((mBuilderFieldsSet & 0x20) == 0) { + mExtras = defaultExtras(); + } InlineSuggestionsRequest o = new InlineSuggestionsRequest( mMaxSuggestionCount, mPresentationSpecs, mHostPackageName, - mHostInputToken); + mSupportedLocales, + mHostInputToken, + mExtras); return o; } private void checkNotUsed() { - if ((mBuilderFieldsSet & 0x10) != 0) { + if ((mBuilderFieldsSet & 0x40) != 0) { throw new IllegalStateException( "This Builder should not be reused. Use a new Builder instance instead"); } @@ -413,10 +500,10 @@ public final class InlineSuggestionsRequest implements Parcelable { } @DataClass.Generated( - time = 1581555687721L, + time = 1581747892762L, codegenVersion = "1.0.14", 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.Nullable android.os.IBinder mHostInputToken\npublic void setHostPackageName(java.lang.String)\npublic void setHostInputToken(android.os.IBinder)\nprivate void onConstructed()\nprivate static int defaultMaxSuggestionCount()\nprivate static java.lang.String defaultHostPackageName()\nprivate static android.os.IBinder defaultHostInputToken()\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)\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 @android.annotation.Nullable android.os.IBinder mHostInputToken\nprivate @android.annotation.Nullable android.os.Bundle mExtras\npublic void setHostInputToken(android.os.IBinder)\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 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)\nclass BaseBuilder extends java.lang.Object implements []") @Deprecated private void __metadata() {} |