// Path: MagicViews/src/main/java/com/ivankocijan/magicviews/enums/PreferenceType.java
// public enum PreferenceType {
// 
//     SIMPLE_PREFERENCE, SWITCH_PREFERENCE, CHECKBOX_PREFERENCE, PREFERENCE_GROUP, EDIT_TEXT_PREFERENCE
// 
// }
// 
// Path: MagicViews/src/main/java/com/ivankocijan/magicviews/utils/FontUtils.java
// public class FontUtils {
// 
//     private FontUtils() {
//     }
// 
//     /**
//      * Set's typeface on view
//      *
//      * @Deprecated use AttrsUtils.setAttributes(Context ctx, AttributeSet attrs, TextView view)
//      */
//     @Deprecated
//     public static void setTypeface(Context ctx, AttributeSet attrs, TextView view) {
// 
//         if (attrs != null && ctx != null && view != null) {
// 
//             TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.MagicFont);
//             String fontStyle = a.getString(R.styleable.MagicFont_typeFace);
// 
//             if (fontStyle != null) {
//                 view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontStyle));
//             }
// 
//             a.recycle();
// 
//         }
// 
//     }
// 
//     public static void setTypeface(Context ctx, @NonNull String fontName, TextView view) {
// 
//         if (TextUtils.isEmpty(fontName)) {
//             throw new FontNameEmptyException(
//                     "In order to set the typeface fontName param can not be empty");
//         }
// 
//         if (ctx != null && view != null) {
//             view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontName));
//         }
// 
//     }
// 
//     /**
//      * Set's font style for custom preference
//      */
//     public static void setPreferenceTypeface(Context ctx, String fontStyle, TextView... views) {
// 
//         if (fontStyle != null) {
// 
//             for (TextView view : views) {
// 
//                 view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontStyle));
// 
//             }
// 
//         }
// 
//     }
// 
//     /**
//      * Returns font style from attribute set
//      */
//     public static String getPrefFontStyle(Context ctx, AttributeSet attrs, PreferenceType type) {
// 
//         String fontStyle = "";
// 
//         if (attrs == null) {
//             return fontStyle;
//         }
// 
//         switch (type) {
//             case SIMPLE_PREFERENCE:
//                 TypedArray simple = ctx.obtainStyledAttributes(attrs, R.styleable.MagicPreference);
//                 fontStyle = simple.getString(R.styleable.MagicPreference_prefTypeface);
//                 simple.recycle();
//                 break;
// 
//             case SWITCH_PREFERENCE:
//                 TypedArray switchPref = ctx.obtainStyledAttributes(attrs, R.styleable.MagicSwitchPreference);
//                 fontStyle = switchPref.getString(R.styleable.MagicSwitchPreference_switchPrefTypeface);
//                 switchPref.recycle();
//                 break;
// 
//             case CHECKBOX_PREFERENCE:
//                 TypedArray checkBox = ctx.obtainStyledAttributes(attrs, R.styleable.MagicCheckBoxPreference);
//                 fontStyle = checkBox.getString(R.styleable.MagicCheckBoxPreference_checkBoxTypeface);
//                 checkBox.recycle();
//                 break;
// 
//             case PREFERENCE_GROUP:
//                 TypedArray prefGroup = ctx.obtainStyledAttributes(attrs, R.styleable.MagicPreferenceGroup);
//                 fontStyle = prefGroup.getString(R.styleable.MagicPreferenceGroup_preferenceGroupTypeface);
//                 prefGroup.recycle();
//                 break;
// 
//             case EDIT_TEXT_PREFERENCE:
//                 TypedArray editText = ctx.obtainStyledAttributes(attrs, R.styleable.MagicEditTextPreference);
//                 fontStyle = editText.getString(R.styleable.MagicEditTextPreference_editTextTypeface);
//                 editText.recycle();
//                 return fontStyle;
// 
//             default:
//                 return fontStyle;
//         }
// 
//         return fontStyle;
// 
//     }
// 
// }


import com.ivankocijan.magicviews.enums.PreferenceType;
import com.ivankocijan.magicviews.utils.FontUtils;
import android.content.Context;
import android.preference.EditTextPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;
package com.ivankocijan.magicviews.preference;



/**
 * Created by ivankocijan on 23.05.2014..
 */
public class MagicEditTextPreference extends EditTextPreference {

    private String fontStyle;

    public MagicEditTextPreference(Context context) {
        this(context, null);
    }

    public MagicEditTextPreference(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MagicEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context, attrs);
    }


    private void init(Context ctx, AttributeSet attrs) {

        fontStyle = FontUtils.getPrefFontStyle(ctx, attrs, PreferenceType.EDIT_TEXT_PREFERENCE);

    }

    @Override
    protected void onBindView(View view) {
        super.onBindView(view);

        TextView titleView = (TextView) view.findViewById(android.R.id.title);
        TextView summary = (TextView) view.findViewById(android.R.id.summary);

// Path: MagicViews/src/main/java/com/ivankocijan/magicviews/enums/PreferenceType.java
// public enum PreferenceType {
// 
//     SIMPLE_PREFERENCE, SWITCH_PREFERENCE, CHECKBOX_PREFERENCE, PREFERENCE_GROUP, EDIT_TEXT_PREFERENCE
// 
// }
// 
// Path: MagicViews/src/main/java/com/ivankocijan/magicviews/utils/FontUtils.java
// public class FontUtils {
// 
//     private FontUtils() {
//     }
// 
//     /**
//      * Set's typeface on view
//      *
//      * @Deprecated use AttrsUtils.setAttributes(Context ctx, AttributeSet attrs, TextView view)
//      */
//     @Deprecated
//     public static void setTypeface(Context ctx, AttributeSet attrs, TextView view) {
// 
//         if (attrs != null && ctx != null && view != null) {
// 
//             TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.MagicFont);
//             String fontStyle = a.getString(R.styleable.MagicFont_typeFace);
// 
//             if (fontStyle != null) {
//                 view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontStyle));
//             }
// 
//             a.recycle();
// 
//         }
// 
//     }
// 
//     public static void setTypeface(Context ctx, @NonNull String fontName, TextView view) {
// 
//         if (TextUtils.isEmpty(fontName)) {
//             throw new FontNameEmptyException(
//                     "In order to set the typeface fontName param can not be empty");
//         }
// 
//         if (ctx != null && view != null) {
//             view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontName));
//         }
// 
//     }
// 
//     /**
//      * Set's font style for custom preference
//      */
//     public static void setPreferenceTypeface(Context ctx, String fontStyle, TextView... views) {
// 
//         if (fontStyle != null) {
// 
//             for (TextView view : views) {
// 
//                 view.setTypeface(MagicFont.getInstance(ctx).getTypeface(fontStyle));
// 
//             }
// 
//         }
// 
//     }
// 
//     /**
//      * Returns font style from attribute set
//      */
//     public static String getPrefFontStyle(Context ctx, AttributeSet attrs, PreferenceType type) {
// 
//         String fontStyle = "";
// 
//         if (attrs == null) {
//             return fontStyle;
//         }
// 
//         switch (type) {
//             case SIMPLE_PREFERENCE:
//                 TypedArray simple = ctx.obtainStyledAttributes(attrs, R.styleable.MagicPreference);
//                 fontStyle = simple.getString(R.styleable.MagicPreference_prefTypeface);
//                 simple.recycle();
//                 break;
// 
//             case SWITCH_PREFERENCE:
//                 TypedArray switchPref = ctx.obtainStyledAttributes(attrs, R.styleable.MagicSwitchPreference);
//                 fontStyle = switchPref.getString(R.styleable.MagicSwitchPreference_switchPrefTypeface);
//                 switchPref.recycle();
//                 break;
// 
//             case CHECKBOX_PREFERENCE:
//                 TypedArray checkBox = ctx.obtainStyledAttributes(attrs, R.styleable.MagicCheckBoxPreference);
//                 fontStyle = checkBox.getString(R.styleable.MagicCheckBoxPreference_checkBoxTypeface);
//                 checkBox.recycle();
//                 break;
// 
//             case PREFERENCE_GROUP:
//                 TypedArray prefGroup = ctx.obtainStyledAttributes(attrs, R.styleable.MagicPreferenceGroup);
//                 fontStyle = prefGroup.getString(R.styleable.MagicPreferenceGroup_preferenceGroupTypeface);
//                 prefGroup.recycle();
//                 break;
// 
//             case EDIT_TEXT_PREFERENCE:
//                 TypedArray editText = ctx.obtainStyledAttributes(attrs, R.styleable.MagicEditTextPreference);
//                 fontStyle = editText.getString(R.styleable.MagicEditTextPreference_editTextTypeface);
//                 editText.recycle();
//                 return fontStyle;
// 
//             default:
//                 return fontStyle;
//         }
// 
//         return fontStyle;
// 
//     }
// 
// }


// Path: MagicViews/src/main/java/com/ivankocijan/magicviews/preference/MagicEditTextPreference.java
import com.ivankocijan.magicviews.enums.PreferenceType;
import com.ivankocijan.magicviews.utils.FontUtils;
import android.content.Context;
import android.preference.EditTextPreference;
import android.util.AttributeSet;
import android.view.View;
import android.widget.TextView;

package com.ivankocijan.magicviews.preference;



/**
 * Created by ivankocijan on 23.05.2014..
 */
public class MagicEditTextPreference extends EditTextPreference {

    private String fontStyle;

    public MagicEditTextPreference(Context context) {
        this(context, null);
    }

    public MagicEditTextPreference(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MagicEditTextPreference(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init(context, attrs);
    }


    private void init(Context ctx, AttributeSet attrs) {

        fontStyle = FontUtils.getPrefFontStyle(ctx, attrs, PreferenceType.EDIT_TEXT_PREFERENCE);

    }

    @Override
    protected void onBindView(View view) {
        super.onBindView(view);

        TextView titleView = (TextView) view.findViewById(android.R.id.title);
        TextView summary = (TextView) view.findViewById(android.R.id.summary);

        if (titleView != null && getContext() != null) {