/**
* Copyright 2014 John Persano
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package com.github.johnpersano.supertoasts.util;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Build;
import com.github.johnpersano.supertoasts.R;
import com.github.johnpersano.supertoasts.SuperToast;
/** Creates a reference to basic style options so that all types of SuperToasts
* will be themed the same way in a particular class. */
@SuppressWarnings("UnusedDeclaration")
public class Style {
public static final int BLACK = 0;
public static final int BLUE = 1;
public static final int GRAY = 2;
public static final int GREEN = 3;
public static final int ORANGE = 4;
public static final int PURPLE = 5;
public static final int RED = 6;
public static final int WHITE = 7;
public SuperToast.Animations animations = SuperToast.Animations.FADE;
public int background = getBackground(GRAY);
public int typefaceStyle = Typeface.NORMAL;
public int textColor = Color.WHITE;
public int dividerColor = Color.WHITE;
public int buttonTextColor = Color.LTGRAY;
/**
* Returns a preset style.
*
* @param styleType {@link Style}
*
* @return {@link Style}
*/
public static Style getStyle(int styleType) {
final Style style = new Style();
switch (styleType) {
case BLACK:
style.textColor = Color.WHITE;
style.background = getBackground(BLACK);
style.dividerColor = Color.WHITE;
return style;
case WHITE:
style.textColor = Color.DKGRAY;
style.background = getBackground(WHITE);
style.dividerColor = Color.DKGRAY;
style.buttonTextColor = Color.GRAY;
return style;
case GRAY:
style.textColor = Color.WHITE;
style.background = getBackground(GRAY);
style.dividerColor = Color.WHITE;
style.buttonTextColor = Color.GRAY;
return style;
case PURPLE:
style.textColor = Color.WHITE;
style.background = getBackground(PURPLE);
style.dividerColor = Color.WHITE;
return style;
case RED:
style.textColor = Color.WHITE;
style.background = getBackground(RED);
style.dividerColor = Color.WHITE;
return style;
case ORANGE:
style.textColor = Color.WHITE;
style.background = getBackground(ORANGE);
style.dividerColor = Color.WHITE;
return style;
case BLUE:
style.textColor = Color.WHITE;
style.background = getBackground(BLUE);
style.dividerColor = Color.WHITE;
return style;
case GREEN:
style.textColor = Color.WHITE;
style.background = getBackground(GREEN);
style.dividerColor = Color.WHITE;
return style;
default:
style.textColor = Color.WHITE;
style.background = getBackground(GRAY);
style.dividerColor = Color.WHITE;
return style;
}
}
/**
* Returns a preset style with specified animations.
*
* @param styleType {@link Style}
* @param animations {@link com.github.johnpersano.supertoasts.SuperToast.Animations}
*
* @return {@link Style}
*/
public static Style getStyle(int styleType, SuperToast.Animations animations) {
final Style style = new Style();
style.animations = animations;
switch (styleType) {
case BLACK:
style.textColor = Color.WHITE;
style.background = getBackground(BLACK);
style.dividerColor = Color.WHITE;
return style;
case WHITE:
style.textColor = Color.DKGRAY;
style.background = getBackground(WHITE);
style.dividerColor = Color.DKGRAY;
style.buttonTextColor = Color.GRAY;
return style;
case GRAY:
style.textColor = Color.WHITE;
style.background = getBackground(GRAY);
style.dividerColor = Color.WHITE;
style.buttonTextColor = Color.GRAY;
return style;
case PURPLE:
style.textColor = Color.WHITE;
style.background = getBackground(PURPLE);
style.dividerColor = Color.WHITE;
return style;
case RED:
style.textColor = Color.WHITE;
style.background = getBackground(RED);
style.dividerColor = Color.WHITE;
return style;
case ORANGE:
style.textColor = Color.WHITE;
style.background = getBackground(ORANGE);
style.dividerColor = Color.WHITE;
return style;
case BLUE:
style.textColor = Color.WHITE;
style.background = getBackground(BLUE);
style.dividerColor = Color.WHITE;
return style;
case GREEN:
style.textColor = Color.WHITE;
style.background = getBackground(GREEN);
style.dividerColor = Color.WHITE;
return style;
default:
style.textColor = Color.WHITE;
style.background = getBackground(GRAY);
style.dividerColor = Color.WHITE;
return style;
}
}
public static int getBackground(int style) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
switch (style) {
case BLACK:
return (R.drawable.background_kitkat_black);
case WHITE:
return (R.drawable.background_kitkat_white);
case GRAY:
return (R.drawable.background_kitkat_gray);
case PURPLE:
return (R.drawable.background_kitkat_purple);
case RED:
return (R.drawable.background_kitkat_red);
case ORANGE:
return (R.drawable.background_kitkat_orange);
case BLUE:
return (R.drawable.background_kitkat_blue);
case GREEN:
return (R.drawable.background_kitkat_green);
default:
return (R.drawable.background_kitkat_gray);
}
} else {
switch (style) {
case BLACK:
return (R.drawable.background_standard_black);
case WHITE:
return (R.drawable.background_standard_white);
case GRAY:
return (R.drawable.background_standard_gray);
case PURPLE:
return (R.drawable.background_standard_purple);
case RED:
return (R.drawable.background_standard_red);
case ORANGE:
return (R.drawable.background_standard_orange);
case BLUE:
return (R.drawable.background_standard_blue);
case GREEN:
return (R.drawable.background_standard_green);
default:
return (R.drawable.background_standard_gray);
}
}
}
}