package com.tomer.alwayson.views;

import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckedTextView;


public class FontAdapter extends BaseAdapter {

    private String[] items;
    private Context context;

    public FontAdapter(Context context, int items) {
        this.context = context;
        this.items = context.getResources().getStringArray(items);
    }

    public static Typeface getFontByNumber(Context context, int number) {
        switch (number) {
            case 0:
                return Typeface.DEFAULT;
            case 1:
                return Typeface.DEFAULT_BOLD;
            case 2:
                return Typeface.defaultFromStyle(Typeface.ITALIC);
            case 3:
                return Typeface.SERIF;
            case 4:
                return Typeface.SANS_SERIF;
            case 5:
                return Typeface.MONOSPACE;
            case 6:
                return Typeface.createFromAsset(context.getAssets(), "fonts/dotted.ttf");
            case 7:
                return Typeface.createFromAsset(context.getAssets(), "fonts/ralewaydots.ttf");
            case 8:
                return Typeface.createFromAsset(context.getAssets(), "fonts/ginga.ttf");
            case 9:
                return Typeface.createFromAsset(context.getAssets(), "fonts/grinched.ttf");
            case 10:
                return Typeface.createFromAsset(context.getAssets(), "fonts/parryhotter.ttf");
            case 11:
                return Typeface.createFromAsset(context.getAssets(), "fonts/snackpatrol.otf");
            case 12:
                return Typeface.createFromAsset(context.getAssets(), "fonts/trashco.ttf");
            case 13:
                return Typeface.createFromAsset(context.getAssets(), "fonts/homoarak.ttf");
            case 14:
                return Typeface.createFromAsset(context.getAssets(), "fonts/waltograph.ttf");
            case 15:
                return Typeface.createFromAsset(context.getAssets(), "fonts/halo3.ttf");
            case 16:
                return Typeface.createFromAsset(context.getAssets(), "fonts/ubuntu.ttf");
            case 17:
                return Typeface.createFromAsset(context.getAssets(), "fonts/pixel.ttf");
            case 18:
                return Typeface.createFromAsset(context.getAssets(), "fonts/roboto.ttf");
            case 19:
                return Typeface.createFromAsset(context.getAssets(), "fonts/roboto_thin.ttf");
            case 20:
                return Typeface.createFromAsset(context.getAssets(), "fonts/roboto_light.ttf");
            case 21:
                return Typeface.createFromAsset(context.getAssets(), "fonts/ritaglio.ttf");
            case 22:
                return Typeface.createFromAsset(context.getAssets(), "fonts/philippine.otf");
            case 23:
                return Typeface.createFromAsset(context.getAssets(), "fonts/some_time_later.otf");
            case 24:
                return Typeface.createFromAsset(context.getAssets(), "fonts/lcd.otf");
            case 25:
                return Typeface.createFromAsset(context.getAssets(), "fonts/black_chancery.ttf");
            case 26:
                return Typeface.createFromAsset(context.getAssets(), "fonts/ninja.ttf");
            case 27:
                return Typeface.createFromAsset(context.getAssets(), "fonts/still_time.ttf");
            case 28:
                return Typeface.createFromAsset(context.getAssets(), "fonts/bristol.otf");
            case 29:
                return Typeface.createFromAsset(context.getAssets(), "fonts/economica.ttf");
            case 30:
                return Typeface.createFromAsset(context.getAssets(), "fonts/porkys.ttf");
            case 31:
                return Typeface.createFromAsset(context.getAssets(), "fonts/quickhand.ttf");
            case 32:
                return Typeface.createFromAsset(context.getAssets(), "fonts/tr2n.ttf");
        }
        return Typeface.DEFAULT;
    }

    @Override
    public int getCount() {
        return items.length;
    }

    @Override
    public Object getItem(int position) {
        return items[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View view = convertView;
        Typeface font = getFontByNumber(context, position);
        if (view == null) {
            final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            view = inflater.inflate(android.R.layout.select_dialog_singlechoice, parent, false);
        }
        CheckedTextView item = (CheckedTextView) view.findViewById(android.R.id.text1);
        item.setText(items[position]);
        item.setTypeface(font);
        item.setTextColor(Color.WHITE);
        return view;
    }
}