package it.slyce.messaging.view.text; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Typeface; import android.text.TextUtils; import android.util.AttributeSet; import android.widget.EditText; import it.slyce.messaging.R; /** * Created by John C. Hunchar on 2/2/16. */ public class FontEditText extends EditText { private static final String VALUE_FONT_DIR_PREFIX = "fonts/"; public FontEditText(Context context) { super(context); init(context, null, 0, 0); } public FontEditText(Context context, AttributeSet attrs) { super(context, attrs); init(context, attrs, 0, 0); } public FontEditText(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context, attrs, defStyleAttr, 0); } /** * Always call this like a constructor */ private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { String font = null; // Load in font attribute if (attrs != null) { final TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.FontEditText, defStyleAttr, defStyleRes); font = a.getString(R.styleable.FontEditText_editText_font); a.recycle(); } // Set font if available if (!TextUtils.isEmpty(font)) { StringBuilder fontDirBuilder = new StringBuilder(); fontDirBuilder.append(VALUE_FONT_DIR_PREFIX).append(font); try { Typeface typeface = Typeface.createFromAsset(getContext().getAssets(), fontDirBuilder.toString()); setTypeface(typeface); } catch (Exception ignore) { } } } }