package com.pan.materialdrawer.icons;
import android.content.Context;
import android.graphics.Typeface;
import com.mikepenz.iconics.typeface.IIcon;
import com.mikepenz.iconics.typeface.ITypeface;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
/**
* Created by mikepenz on 01.11.14.
*/
public class MaterialDrawerFont implements ITypeface {
private static final String TTF_FILE = "materialdrawerfont.ttf";
private static Typeface typeface = null;
private static HashMap<String, Character> mChars;
@Override
public IIcon getIcon(String key) {
return Icon.valueOf(key);
}
@Override
public HashMap<String, Character> getCharacters() {
if (mChars == null) {
HashMap<String, Character> aChars = new HashMap<String, Character>();
for (Icon v : Icon.values()) {
aChars.put(v.name(), v.character);
}
mChars = aChars;
}
return mChars;
}
@Override
public String getMappingPrefix() {
return "mdf";
}
@Override
public String getFontName() {
return "MaterialDrawerFont";
}
@Override
public String getVersion() {
return "4.0.0";
}
@Override
public int getIconCount() {
return mChars.size();
}
@Override
public Collection<String> getIcons() {
Collection<String> icons = new LinkedList<String>();
for (Icon value : Icon.values()) {
icons.add(value.name());
}
return icons;
}
@Override
public String getAuthor() {
return "";
}
@Override
public String getUrl() {
return "";
}
@Override
public String getDescription() {
return "";
}
@Override
public String getLicense() {
return "";
}
@Override
public String getLicenseUrl() {
return "";
}
@Override
public Typeface getTypeface(Context context) {
if (typeface == null) {
try {
typeface = Typeface.createFromAsset(context.getAssets(), "fonts/" + TTF_FILE);
} catch (Exception e) {
return null;
}
}
return typeface;
}
public enum Icon implements IIcon {
mdf_person('\ue800'),
mdf_arrow_drop_up('\ue801'),
mdf_arrow_drop_down('\ue802');
char character;
Icon(char character) {
this.character = character;
}
public String getFormattedName() {
return "{" + name() + "}";
}
public char getCharacter() {
return character;
}
public String getName() {
return name();
}
// remember the typeface so we can use it later
private static ITypeface typeface;
public ITypeface getTypeface() {
if (typeface == null) {
typeface = new MaterialDrawerFont();
}
return typeface;
}
}
}