in library/src/main/java/com/facebook/fbui/textlayoutbuilder/ResourceTextLayoutHelper.java [69:146]
public static void updateFromStyleResource(
TextLayoutBuilder builder,
Context context,
AttributeSet attrs,
@AttrRes int styleAttr,
@StyleRes int styleRes) {
TypedArray customAttrs =
context.obtainStyledAttributes(attrs, R.styleable.TextStyle, styleAttr, styleRes);
int textAppearanceId =
customAttrs.getResourceId(R.styleable.TextStyle_android_textAppearance, -1);
if (textAppearanceId > 0) {
setTextAppearance(builder, context, textAppearanceId);
}
ColorStateList textColor =
customAttrs.getColorStateList(R.styleable.TextStyle_android_textColor);
int textSize =
customAttrs.getDimensionPixelSize(
R.styleable.TextStyle_android_textSize, DEFAULT_TEXT_SIZE_PX);
int shadowColor =
customAttrs.getInt(R.styleable.TextStyle_android_shadowColor, Color.TRANSPARENT);
float dx = customAttrs.getFloat(R.styleable.TextStyle_android_shadowDx, 0.0f);
float dy = customAttrs.getFloat(R.styleable.TextStyle_android_shadowDy, 0.0f);
float radius = customAttrs.getFloat(R.styleable.TextStyle_android_shadowRadius, 0.0f);
int textStyle = customAttrs.getInt(R.styleable.TextStyle_android_textStyle, -1);
int ellipsize = customAttrs.getInt(R.styleable.TextStyle_android_ellipsize, 0);
boolean singleLine = customAttrs.getBoolean(R.styleable.TextStyle_android_singleLine, false);
int maxLines =
customAttrs.getInt(
R.styleable.TextStyle_android_maxLines, TextLayoutBuilder.DEFAULT_MAX_LINES);
int breakStrategy = customAttrs.getInt(R.styleable.TextStyle_android_breakStrategy, -1);
int hyphenationFrequency =
customAttrs.getInt(R.styleable.TextStyle_android_hyphenationFrequency, -1);
customAttrs.recycle();
builder.setTextColor(textColor);
builder.setTextSize(textSize);
builder.setShadowLayer(radius, dx, dy, shadowColor);
if (textStyle != -1) {
builder.setTypeface(Typeface.defaultFromStyle(textStyle));
} else {
builder.setTypeface(null);
}
if (ellipsize > 0 && ellipsize < 4) {
// TruncateAt doesn't have a value for NONE.
builder.setEllipsize(TextUtils.TruncateAt.values()[ellipsize - 1]);
} else {
builder.setEllipsize(null);
}
builder.setSingleLine(singleLine);
builder.setMaxLines(maxLines);
if (breakStrategy > -1) {
builder.setBreakStrategy(breakStrategy);
}
if (hyphenationFrequency > -1) {
builder.setHyphenationFrequency(hyphenationFrequency);
}
}