package com.fourlastor.dante.html; import android.content.Context; import android.graphics.Typeface; import android.support.annotation.IntDef; import android.support.annotation.StyleRes; import android.text.Spanned; import com.fourlastor.dante.Dante; public class FlavoredHtml { private final Dante dante; private FlavoredHtml(Dante dante) { this.dante = dante; } public static class Builder { private final Context context; private final Dante dante; public Builder(Context context) { this.context = context; this.dante = new Dante(new HtmlParser()); } public Builder newLine(String... tags) { dante.register(new NewLineListener(tags)); return this; } public Builder textAppearance(@StyleRes int styleRes, String... tags) { dante.register(new TextAppearanceListener(context, styleRes, tags)); return this; } @IntDef({Typeface.NORMAL, Typeface.BOLD, Typeface.BOLD_ITALIC, Typeface.ITALIC}) @interface TypefaceInt { } public Builder style(@TypefaceInt int typeface, String... tags) { dante.register(new StyleSpanListener(typeface, tags)); return this; } public Builder bullet(int margin, String... tags) { dante.register(new LeadingMarginSpanListener(margin, tags)); dante.register(new BulletSpanListener(margin, tags)); return this; } public Builder img(ImgLoader imgLoader) { dante.register(new ImgListener(imgLoader)); return this; } public FlavoredHtml build() { return new FlavoredHtml(dante); } } public Spanned parse(String html) { return dante.parse(html); } }