/*
 * Copyright (c) 2015. Ncomz. All Rights Reserved
 */

package com.ntels.kneet.v3.common.util;

import java.lang.reflect.Field;

import android.content.Context;
import android.graphics.Typeface;

/**
 * <pre>
 * -----------------------------------------------------------------------------
 * 설명 :  FontsOverride 클래스
 * 상세설명 : 어플에서 사용하는 폰트를 강제로 구현할때 사용하는 클래스
 * 작성자 : 최진오
 * 작성일자 : 2014-04-06
 * 수정일자 : 2014-04-06 최진오 최초생성
 * ------------------------------------------------------------------------------
 * </pre>
 */
public final class FontsOverride {

    public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) {
        final Typeface regular = Typeface.createFromAsset(context.getAssets(), "fonts/" + fontAssetName);
        replaceFont(staticTypefaceFieldName, regular);
    }

    protected static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) {
        try {
            final Field staticField = Typeface.class.getDeclaredField(staticTypefaceFieldName);
            staticField.setAccessible(true);
            staticField.set(null, newTypeface);
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}
