Loading api/current.txt +34 −0 Original line number Diff line number Diff line Loading @@ -30381,6 +30381,40 @@ package android.text.style { method public void writeToParcel(android.os.Parcel, int); } public class TtsSpan implements android.text.ParcelableSpan { ctor public TtsSpan(java.lang.String, android.os.PersistableBundle); ctor public TtsSpan(android.os.Parcel); method public int describeContents(); method public android.os.PersistableBundle getArgs(); method public int getSpanTypeId(); method public java.lang.String getType(); method public void writeToParcel(android.os.Parcel, int); field public static final java.lang.String ANIMACY_ANIMATE = "android.animate"; field public static final java.lang.String ANIMACY_INANIMATE = "android.inanimate"; field public static final java.lang.String ARG_ANIMACY = "android.arg.animacy"; field public static final java.lang.String ARG_CASE = "android.arg.case"; field public static final java.lang.String ARG_GENDER = "android.arg.gender"; field public static final java.lang.String ARG_MULTIPLICITY = "android.arg.multiplicity"; field public static final java.lang.String ARG_NUMBER = "android.arg.number"; field public static final java.lang.String ARG_TEXT = "android.arg.text"; field public static final java.lang.String CASE_ABLATIVE = "android.ablative"; field public static final java.lang.String CASE_ACCUSATIVE = "android.accusative"; field public static final java.lang.String CASE_DATIVE = "android.dative"; field public static final java.lang.String CASE_GENITIVE = "android.genitive"; field public static final java.lang.String CASE_INSTRUMENTAL = "android.instrumental"; field public static final java.lang.String CASE_LOCATIVE = "android.locative"; field public static final java.lang.String CASE_NOMINATIVE = "android.nomative"; field public static final java.lang.String CASE_VOCATIVE = "android.vocative"; field public static final java.lang.String GENDER_FEMALE = "android.female"; field public static final java.lang.String GENDER_MALE = "android.male"; field public static final java.lang.String GENDER_NEUTRAL = "android.neutral"; field public static final java.lang.String MULTIPLICITY_DUAL = "android.dual"; field public static final java.lang.String MULTIPLICITY_PLURAL = "android.plural"; field public static final java.lang.String MULTIPLICITY_SINGLE = "android.single"; field public static final java.lang.String TYPE_CARDINAL = "android.type.cardinal"; field public static final java.lang.String TYPE_TEXT = "android.type.text"; } public class TypefaceSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan { ctor public TypefaceSpan(java.lang.String); ctor public TypefaceSpan(android.os.Parcel); core/java/android/text/TextUtils.java +8 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.text.style.SuggestionRangeSpan; import android.text.style.SuggestionSpan; import android.text.style.SuperscriptSpan; import android.text.style.TextAppearanceSpan; import android.text.style.TtsSpan; import android.text.style.TypefaceSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; Loading Loading @@ -607,7 +608,9 @@ public class TextUtils { /** @hide */ public static final int LOCALE_SPAN = 23; /** @hide */ public static final int LAST_SPAN = LOCALE_SPAN; public static final int TTS_SPAN = 24; /** @hide */ public static final int LAST_SPAN = TTS_SPAN; /** * Flatten a CharSequence and whatever styles can be copied across processes Loading Loading @@ -786,6 +789,10 @@ public class TextUtils { readSpan(p, sp, new LocaleSpan(p)); break; case TTS_SPAN: readSpan(p, sp, new TtsSpan(p)); break; default: throw new RuntimeException("bogus span encoding " + kind); } Loading core/java/android/text/style/TtsSpan.java 0 → 100644 +150 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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.text.style; import android.os.Parcel; import android.os.PersistableBundle; import android.text.ParcelableSpan; import android.text.TextUtils; /** * A span that supplies addition meta-data intended for text-to-speech rendering * of the associated text. If the text is being processed by a text-to-speech * engine, the engine may use the data in this span in addition to or instead of * its associated text. */ public class TtsSpan implements ParcelableSpan { private final String mType; private final PersistableBundle mArgs; /** * This span type can be used to add morphosyntactic features to the text it * spans over, or synthesize a something else than the spanned text. Use * the argument {@link #ARG_TEXT} to set a different text. * Accepts the arguments {@link TtsSpan#ARG_GENDER}, * {@link TtsSpan#ARG_ANIMACY}, {@link TtsSpan#ARG_MULTIPLICITY} and * {@link TtsSpan#ARG_CASE}. */ public static final String TYPE_TEXT = "android.type.text"; /** * The text associated with this span is a cardinal. Must include the * number to be synthesized with {@link #ARG_NUMBER}. * Also accepts the arguments {@link TtsSpan#ARG_GENDER}, * {@link TtsSpan#ARG_ANIMACY}, {@link TtsSpan#ARG_MULTIPLICITY} and * {@link TtsSpan#ARG_CASE}. */ public static final String TYPE_CARDINAL = "android.type.cardinal"; /** * String supplying the text to be synthesized. The synthesizer is free * to decide how to interpret the text. */ public static final String ARG_TEXT = "android.arg.text"; /** * Argument used to specify a whole number. The value can be a string of * digits of any size optionally prefixed with a - or +. */ public static final String ARG_NUMBER = "android.arg.number"; /** * String argument supplying gender information. Can be any of * {@link TtsSpan#GENDER_NEUTRAL}, {@link TtsSpan#GENDER_MALE} and * {@link TtsSpan#GENDER_FEMALE}. */ public static final String ARG_GENDER = "android.arg.gender"; public static final String GENDER_NEUTRAL = "android.neutral"; public static final String GENDER_MALE = "android.male"; public static final String GENDER_FEMALE = "android.female"; /** * String argument supplying animacy information. Can be * {@link TtsSpan#ANIMACY_ANIMATE} or * {@link TtsSpan#ANIMACY_INANIMATE} */ public static final String ARG_ANIMACY = "android.arg.animacy"; public static final String ANIMACY_ANIMATE = "android.animate"; public static final String ANIMACY_INANIMATE = "android.inanimate"; /** * String argument supplying multiplicity information. Can be any of * {@link TtsSpan#MULTIPLICITY_SINGLE}, * {@link TtsSpan#MULTIPLICITY_DUAL} and * {@link TtsSpan#MULTIPLICITY_PLURAL} */ public static final String ARG_MULTIPLICITY = "android.arg.multiplicity"; public static final String MULTIPLICITY_SINGLE = "android.single"; public static final String MULTIPLICITY_DUAL = "android.dual"; public static final String MULTIPLICITY_PLURAL = "android.plural"; /** * String argument supplying case information. Can be any of * {@link TtsSpan#CASE_NOMINATIVE}, {@link TtsSpan#CASE_ACCUSATIVE}, * {@link TtsSpan#CASE_DATIVE}, {@link TtsSpan#CASE_ABLATIVE}, * {@link TtsSpan#CASE_GENITIVE}, {@link TtsSpan#CASE_VOCATIVE}, * {@link TtsSpan#CASE_LOCATIVE} and * {@link TtsSpan#CASE_INSTRUMENTAL} */ public static final String ARG_CASE = "android.arg.case"; public static final String CASE_NOMINATIVE = "android.nomative"; public static final String CASE_ACCUSATIVE = "android.accusative"; public static final String CASE_DATIVE = "android.dative"; public static final String CASE_ABLATIVE = "android.ablative"; public static final String CASE_GENITIVE = "android.genitive"; public static final String CASE_VOCATIVE = "android.vocative"; public static final String CASE_LOCATIVE = "android.locative"; public static final String CASE_INSTRUMENTAL = "android.instrumental"; public TtsSpan(String type, PersistableBundle args) { mType = type; mArgs = args; } public TtsSpan(Parcel src) { mType = src.readString(); mArgs = src.readPersistableBundle(); } public String getType() { return mType; } public PersistableBundle getArgs() { return mArgs; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mType); dest.writePersistableBundle(mArgs); } @Override public int getSpanTypeId() { return TextUtils.TTS_SPAN; } } Loading
api/current.txt +34 −0 Original line number Diff line number Diff line Loading @@ -30381,6 +30381,40 @@ package android.text.style { method public void writeToParcel(android.os.Parcel, int); } public class TtsSpan implements android.text.ParcelableSpan { ctor public TtsSpan(java.lang.String, android.os.PersistableBundle); ctor public TtsSpan(android.os.Parcel); method public int describeContents(); method public android.os.PersistableBundle getArgs(); method public int getSpanTypeId(); method public java.lang.String getType(); method public void writeToParcel(android.os.Parcel, int); field public static final java.lang.String ANIMACY_ANIMATE = "android.animate"; field public static final java.lang.String ANIMACY_INANIMATE = "android.inanimate"; field public static final java.lang.String ARG_ANIMACY = "android.arg.animacy"; field public static final java.lang.String ARG_CASE = "android.arg.case"; field public static final java.lang.String ARG_GENDER = "android.arg.gender"; field public static final java.lang.String ARG_MULTIPLICITY = "android.arg.multiplicity"; field public static final java.lang.String ARG_NUMBER = "android.arg.number"; field public static final java.lang.String ARG_TEXT = "android.arg.text"; field public static final java.lang.String CASE_ABLATIVE = "android.ablative"; field public static final java.lang.String CASE_ACCUSATIVE = "android.accusative"; field public static final java.lang.String CASE_DATIVE = "android.dative"; field public static final java.lang.String CASE_GENITIVE = "android.genitive"; field public static final java.lang.String CASE_INSTRUMENTAL = "android.instrumental"; field public static final java.lang.String CASE_LOCATIVE = "android.locative"; field public static final java.lang.String CASE_NOMINATIVE = "android.nomative"; field public static final java.lang.String CASE_VOCATIVE = "android.vocative"; field public static final java.lang.String GENDER_FEMALE = "android.female"; field public static final java.lang.String GENDER_MALE = "android.male"; field public static final java.lang.String GENDER_NEUTRAL = "android.neutral"; field public static final java.lang.String MULTIPLICITY_DUAL = "android.dual"; field public static final java.lang.String MULTIPLICITY_PLURAL = "android.plural"; field public static final java.lang.String MULTIPLICITY_SINGLE = "android.single"; field public static final java.lang.String TYPE_CARDINAL = "android.type.cardinal"; field public static final java.lang.String TYPE_TEXT = "android.type.text"; } public class TypefaceSpan extends android.text.style.MetricAffectingSpan implements android.text.ParcelableSpan { ctor public TypefaceSpan(java.lang.String); ctor public TypefaceSpan(android.os.Parcel);
core/java/android/text/TextUtils.java +8 −1 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.text.style.SuggestionRangeSpan; import android.text.style.SuggestionSpan; import android.text.style.SuperscriptSpan; import android.text.style.TextAppearanceSpan; import android.text.style.TtsSpan; import android.text.style.TypefaceSpan; import android.text.style.URLSpan; import android.text.style.UnderlineSpan; Loading Loading @@ -607,7 +608,9 @@ public class TextUtils { /** @hide */ public static final int LOCALE_SPAN = 23; /** @hide */ public static final int LAST_SPAN = LOCALE_SPAN; public static final int TTS_SPAN = 24; /** @hide */ public static final int LAST_SPAN = TTS_SPAN; /** * Flatten a CharSequence and whatever styles can be copied across processes Loading Loading @@ -786,6 +789,10 @@ public class TextUtils { readSpan(p, sp, new LocaleSpan(p)); break; case TTS_SPAN: readSpan(p, sp, new TtsSpan(p)); break; default: throw new RuntimeException("bogus span encoding " + kind); } Loading
core/java/android/text/style/TtsSpan.java 0 → 100644 +150 −0 Original line number Diff line number Diff line /* * Copyright (C) 2014 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.text.style; import android.os.Parcel; import android.os.PersistableBundle; import android.text.ParcelableSpan; import android.text.TextUtils; /** * A span that supplies addition meta-data intended for text-to-speech rendering * of the associated text. If the text is being processed by a text-to-speech * engine, the engine may use the data in this span in addition to or instead of * its associated text. */ public class TtsSpan implements ParcelableSpan { private final String mType; private final PersistableBundle mArgs; /** * This span type can be used to add morphosyntactic features to the text it * spans over, or synthesize a something else than the spanned text. Use * the argument {@link #ARG_TEXT} to set a different text. * Accepts the arguments {@link TtsSpan#ARG_GENDER}, * {@link TtsSpan#ARG_ANIMACY}, {@link TtsSpan#ARG_MULTIPLICITY} and * {@link TtsSpan#ARG_CASE}. */ public static final String TYPE_TEXT = "android.type.text"; /** * The text associated with this span is a cardinal. Must include the * number to be synthesized with {@link #ARG_NUMBER}. * Also accepts the arguments {@link TtsSpan#ARG_GENDER}, * {@link TtsSpan#ARG_ANIMACY}, {@link TtsSpan#ARG_MULTIPLICITY} and * {@link TtsSpan#ARG_CASE}. */ public static final String TYPE_CARDINAL = "android.type.cardinal"; /** * String supplying the text to be synthesized. The synthesizer is free * to decide how to interpret the text. */ public static final String ARG_TEXT = "android.arg.text"; /** * Argument used to specify a whole number. The value can be a string of * digits of any size optionally prefixed with a - or +. */ public static final String ARG_NUMBER = "android.arg.number"; /** * String argument supplying gender information. Can be any of * {@link TtsSpan#GENDER_NEUTRAL}, {@link TtsSpan#GENDER_MALE} and * {@link TtsSpan#GENDER_FEMALE}. */ public static final String ARG_GENDER = "android.arg.gender"; public static final String GENDER_NEUTRAL = "android.neutral"; public static final String GENDER_MALE = "android.male"; public static final String GENDER_FEMALE = "android.female"; /** * String argument supplying animacy information. Can be * {@link TtsSpan#ANIMACY_ANIMATE} or * {@link TtsSpan#ANIMACY_INANIMATE} */ public static final String ARG_ANIMACY = "android.arg.animacy"; public static final String ANIMACY_ANIMATE = "android.animate"; public static final String ANIMACY_INANIMATE = "android.inanimate"; /** * String argument supplying multiplicity information. Can be any of * {@link TtsSpan#MULTIPLICITY_SINGLE}, * {@link TtsSpan#MULTIPLICITY_DUAL} and * {@link TtsSpan#MULTIPLICITY_PLURAL} */ public static final String ARG_MULTIPLICITY = "android.arg.multiplicity"; public static final String MULTIPLICITY_SINGLE = "android.single"; public static final String MULTIPLICITY_DUAL = "android.dual"; public static final String MULTIPLICITY_PLURAL = "android.plural"; /** * String argument supplying case information. Can be any of * {@link TtsSpan#CASE_NOMINATIVE}, {@link TtsSpan#CASE_ACCUSATIVE}, * {@link TtsSpan#CASE_DATIVE}, {@link TtsSpan#CASE_ABLATIVE}, * {@link TtsSpan#CASE_GENITIVE}, {@link TtsSpan#CASE_VOCATIVE}, * {@link TtsSpan#CASE_LOCATIVE} and * {@link TtsSpan#CASE_INSTRUMENTAL} */ public static final String ARG_CASE = "android.arg.case"; public static final String CASE_NOMINATIVE = "android.nomative"; public static final String CASE_ACCUSATIVE = "android.accusative"; public static final String CASE_DATIVE = "android.dative"; public static final String CASE_ABLATIVE = "android.ablative"; public static final String CASE_GENITIVE = "android.genitive"; public static final String CASE_VOCATIVE = "android.vocative"; public static final String CASE_LOCATIVE = "android.locative"; public static final String CASE_INSTRUMENTAL = "android.instrumental"; public TtsSpan(String type, PersistableBundle args) { mType = type; mArgs = args; } public TtsSpan(Parcel src) { mType = src.readString(); mArgs = src.readPersistableBundle(); } public String getType() { return mType; } public PersistableBundle getArgs() { return mArgs; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(mType); dest.writePersistableBundle(mArgs); } @Override public int getSpanTypeId() { return TextUtils.TTS_SPAN; } }