import com.android.internal.R;
import android.annotation.NonNull;
import android.annotation.Nullable;
+import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Xml;
*/
public class FontResourcesParser {
private static final String TAG = "FontResourcesParser";
- private static final int NORMAL_WEIGHT = 400;
- private static final int ITALIC = 1;
// A class represents single entry of font-family in xml file.
public interface FamilyResourceEntry {}
public static final class FontFileResourceEntry {
private final @NonNull String mFileName;
private int mWeight;
- private boolean mItalic;
+ private int mItalic;
private int mResourceId;
- public FontFileResourceEntry(@NonNull String fileName, int weight, boolean italic) {
+ public FontFileResourceEntry(@NonNull String fileName, int weight, int italic) {
mFileName = fileName;
mWeight = weight;
mItalic = italic;
return mWeight;
}
- public boolean isItalic() {
+ public int getItalic() {
return mItalic;
}
}
throws XmlPullParserException, IOException {
AttributeSet attrs = Xml.asAttributeSet(parser);
TypedArray array = resources.obtainAttributes(attrs, R.styleable.FontFamilyFont);
- int weight = array.getInt(R.styleable.FontFamilyFont_fontWeight, NORMAL_WEIGHT);
- boolean isItalic = ITALIC == array.getInt(R.styleable.FontFamilyFont_fontStyle, 0);
+ int weight = array.getInt(R.styleable.FontFamilyFont_fontWeight,
+ Typeface.RESOLVE_BY_FONT_TABLE);
+ int italic = array.getInt(R.styleable.FontFamilyFont_fontStyle,
+ Typeface.RESOLVE_BY_FONT_TABLE);
String filename = array.getString(R.styleable.FontFamilyFont_font);
array.recycle();
while (parser.next() != XmlPullParser.END_TAG) {
if (filename == null) {
return null;
}
- return new FontFileResourceEntry(filename, weight, isItalic);
+ return new FontFileResourceEntry(filename, weight, italic);
}
private static void skip(XmlPullParser parser) throws XmlPullParserException, IOException {
assertEquals(4, fileEntries.length);
FontFileResourceEntry font1 = fileEntries[0];
assertEquals(400, font1.getWeight());
- assertEquals(false, font1.isItalic());
+ assertEquals(0, font1.getItalic());
assertEquals("res/font/samplefont.ttf", font1.getFileName());
FontFileResourceEntry font2 = fileEntries[1];
assertEquals(400, font2.getWeight());
- assertEquals(true, font2.isItalic());
+ assertEquals(1, font2.getItalic());
assertEquals("res/font/samplefont2.ttf", font2.getFileName());
FontFileResourceEntry font3 = fileEntries[2];
assertEquals(800, font3.getWeight());
- assertEquals(false, font3.isItalic());
+ assertEquals(0, font3.getItalic());
assertEquals("res/font/samplefont3.ttf", font3.getFileName());
FontFileResourceEntry font4 = fileEntries[3];
assertEquals(800, font4.getWeight());
- assertEquals(true, font4.isItalic());
+ assertEquals(1, font4.getItalic());
assertEquals("res/font/samplefont4.ttf", font4.getFileName());
}
// TODO: Add ttc and variation font support. (b/37853920)
if (!fontFamily.addFontFromAssetManager(mgr, fontFile.getFileName(),
0 /* resourceCookie */, false /* isAsset */, 0 /* ttcIndex */,
- fontFile.getWeight(), fontFile.isItalic() ? STYLE_ITALIC : STYLE_NORMAL,
- null /* axes */)) {
+ fontFile.getWeight(), fontFile.getItalic(), null /* axes */)) {
return null;
}
}