package com.distantfuture.videos.imageutils;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.StateListDrawable;
import com.distantfuture.iconicdroid.IconicFontDrawable;
import com.distantfuture.iconicdroid.icon.EntypoIcon;
import com.distantfuture.iconicdroid.icon.FontAwesomeIcon;
import com.distantfuture.iconicdroid.icon.Icon;
import com.distantfuture.videos.R;
import com.distantfuture.videos.misc.Utils;
public class ToolbarIcons {
public static Drawable icon(Context context, IconID iconID, int iconColor, int sizeInDP) {
StateListDrawable result = null;
Icon icon = null;
switch (iconID) {
case NONE:
break;
case SOUND:
icon = FontAwesomeIcon.VOLUME_UP;
break;
case STEP_BACK:
icon = FontAwesomeIcon.STEP_BACKWARD;
break;
case STEP_FORWARD:
icon = FontAwesomeIcon.STEP_FORWARD;
break;
case HEART:
icon = FontAwesomeIcon.HEART;
break;
case THUMBS_UP:
icon = FontAwesomeIcon.THUMBS_O_UP;
break;
case CLOSE:
icon = FontAwesomeIcon.TIMES_CIRCLE;
break;
case ADD:
icon = FontAwesomeIcon.PLUS_CIRCLE;
break;
case REMOVE:
icon = FontAwesomeIcon.MINUS_CIRCLE;
break;
case FULLSCREEN:
icon = FontAwesomeIcon.ARROWS_ALT;
break;
case VIDEO_PLAY:
icon = FontAwesomeIcon.YOUTUBE_PLAY;
break;
case LIST:
icon = FontAwesomeIcon.LIST_UL;
break;
case OVERFLOW:
icon = FontAwesomeIcon.ELLIPSIS_V;
break;
case ABOUT:
icon = FontAwesomeIcon.INFO_CIRCLE;
break;
case PLAYLISTS:
icon = FontAwesomeIcon.FILM;
break;
case YOUTUBE:
icon = FontAwesomeIcon.YOUTUBE_SQUARE;
break;
case SEARCH:
icon = EntypoIcon.SEARCH;
break;
case SEARCH_PLUS:
icon = FontAwesomeIcon.SEARCH_PLUS;
break;
case UPLOADS:
icon = FontAwesomeIcon.UPLOAD;
break;
case CHECK:
icon = FontAwesomeIcon.CHECK_SQUARE;
break;
case FILM:
icon = FontAwesomeIcon.FILM;
break;
case QUESTION_MARK:
icon = FontAwesomeIcon.QUESTION_CIRCLE;
break;
case COMMENTS:
icon = FontAwesomeIcon.COMMENTS_O;
break;
case COGS:
icon = FontAwesomeIcon.COGS;
break;
case SITE_MAP:
icon = FontAwesomeIcon.SITEMAP;
break;
case SETTINGS:
icon = FontAwesomeIcon.COG;
break;
default:
break;
}
if (icon != null) {
Drawable pressed = null;
Drawable normal = null;
if (icon != null) {
int padding = (int) Utils.dpToPx(4, context);
IconicFontDrawable fpressed = new IconicFontDrawable(context);
fpressed.setIcon(icon);
fpressed.setIconColor(context.getResources().getColor(R.color.holo_blue));
fpressed.setContour(Color.GRAY, 1);
fpressed.setIconPadding(padding);
IconicFontDrawable fnormal = new IconicFontDrawable(context);
fnormal.setIcon(icon);
fnormal.setIconColor(iconColor);
fnormal.setContour(Color.GRAY, 1);
fnormal.setIconPadding(padding);
int size = (int) Utils.dpToPx(sizeInDP, context);
fnormal.setIntrinsicWidth(size);
fnormal.setIntrinsicHeight(size);
fpressed.setIntrinsicWidth(size);
fpressed.setIntrinsicHeight(size);
normal = fnormal;
pressed = fpressed;
}
result = new StateListDrawable();
result.addState(new int[]{android.R.attr.state_pressed}, pressed);
result.addState(new int[]{}, normal);
}
return result;
}
// this doesn't have the states like above. used to convert an icon to a simple bitmap, assuming things like animations will be faster with a bitmap over a text based drawable
public static BitmapDrawable iconBitmap(Context context, IconID iconID, int iconColor, int sizeInDP) {
Drawable iconDrawable = icon(context, iconID, iconColor, sizeInDP);
if (iconDrawable != null) {
int size = (int) Utils.dpToPx(sizeInDP, context);
Bitmap map = Utils.drawableToBitmap(iconDrawable, size, size);
return new BitmapDrawable(context.getResources(), map);
}
return null;
}
public static enum IconID {NONE, SOUND, ADD, REMOVE, COMMENTS, SITE_MAP, COGS, SEARCH_PLUS, STEP_FORWARD, QUESTION_MARK, STEP_BACK, FULLSCREEN, FILM, LIST, CLOSE, HEART, THUMBS_UP, OVERFLOW, VIDEO_PLAY, ABOUT, UPLOADS, PLAYLISTS, YOUTUBE, CHECK, SEARCH, SETTINGS}
}