package android.widget; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; import android.util.AttributeSet; import com.bootstrap.BaseApplication; import javax.inject.Inject; public final class TypefaceTextView extends TextView { @Inject TypefaceManager typefaceManager; public TypefaceTextView(final Context context) { super(context); init(context, null); } public TypefaceTextView(final Context context, final AttributeSet attrs) { super(context, attrs); init(context, attrs); } public TypefaceTextView(final Context context, final AttributeSet attrs, final int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs); } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public TypefaceTextView(final Context context, final AttributeSet attrs, final int defStyleAttr, final int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(context, attrs); } private void init(final Context context, final AttributeSet attrs) { if (!isInEditMode()) { BaseApplication.from(context).getComponent().inject(this); typefaceManager.setup(context, attrs, this); } } public TypefaceTextView setTypeface(final boolean medium) { super.setTypeface(medium ? typefaceManager.getMedium() : typefaceManager.getRegular()); return this; } public TypefaceTextView setStyle(final int style) { super.setTypeface(super.getTypeface(), style); return this; } }