Refactoring ColorUtils class

pull/231/head
Marcin Bartosik 9 years ago
parent b3fe9c65d2
commit cf6e8d51e8

@ -227,7 +227,7 @@ public abstract class HabitList implements Iterable<Habit>
habit.getDescription(), habit.getDescription(),
Integer.toString(freq.getNumerator()), Integer.toString(freq.getNumerator()),
Integer.toString(freq.getDenominator()), Integer.toString(freq.getDenominator()),
ColorUtils.CSV_PALETTE[habit.getColor()] ColorUtils.CSVPaletteEnum.valueOfIndex(habit.getColor()).getColourCode()
}; };
csv.writeNext(cols, false); csv.writeNext(cols, false);

@ -31,15 +31,7 @@ public class HabitMatcherBuilder
private boolean completedAllowed = true; private boolean completedAllowed = true;
private List<Integer> allowedColors = allColors(); private List<Integer> allowedColors = new ArrayList<>(ColorUtils.CSVPaletteEnum.getColourIndexValues().keySet());
private static List<Integer> allColors()
{
List<Integer> colors = new ArrayList<>();
for(int i = 0; i < ColorUtils.CSV_PALETTE.length; i++)
colors.add(i);
return colors;
}
public HabitMatcher build() public HabitMatcher build()
{ {

@ -26,8 +26,12 @@ import android.util.*;
import org.jetbrains.annotations.*; import org.jetbrains.annotations.*;
public class AttributeSetUtils public final class AttributeSetUtils
{ {
private AttributeSetUtils() {
throw new IllegalAccessError("Instantiating utility class");
}
public static final String ISORON_NAMESPACE = "http://isoron.org/android"; public static final String ISORON_NAMESPACE = "http://isoron.org/android";
@Nullable @Nullable

@ -19,27 +19,85 @@
package org.isoron.uhabits.utils; package org.isoron.uhabits.utils;
import android.content.*; import android.content.Context;
import android.graphics.*; import android.graphics.Color;
import android.util.*; import android.util.Log;
public abstract class ColorUtils import java.util.HashMap;
import java.util.Map;
public final class ColorUtils
{ {
public static String CSV_PALETTE[] = { private static final byte ALPHA_CHANNEL = 24;
"#D32F2F", // 0 red private static final byte RED_CHANNEL = 16;
"#E64A19", // 1 orange private static final byte GREEN_CHANNEL = 8;
"#F9A825", // 2 yellow private static final byte BLUE_CHANNEL = 0;
"#AFB42B", // 3 light green public static final String INVALID_COLOR_MESSAGE = "Invalid color: %d. Returning default.";
"#388E3C", // 4 dark green public static final String COLOR_HELPER_TAG = "ColorHelper";
"#00897B", // 5 teal
"#00ACC1", // 6 cyan private ColorUtils() {
"#039BE5", // 7 blue throw new IllegalAccessError("Instantiating utility class");
"#5E35B1", // 8 deep purple }
"#8E24AA", // 9 purple
"#D81B60", // 10 pink public enum CSVPaletteEnum{
"#303030", // 11 dark grey RED(0,"#D32F2F"),
"#aaaaaa" // 12 light grey ORANGE(1,"#E64A19"),
}; YELLOW(2,"#F9A825"),
LIGHT_GREEN(3,"#AFB42B"),
DARK_GREEN(4,"#388E3C"),
TEAL(5,"#00897B"),
CYAN(6,"#00ACC1"),
BLUE(7,"#039BE5"),
DEEP_PURPLE(8,"#5E35B1"),
PURPLE(9,"#8E24AA"),
PINK(10,"#D81B60"),
DARK_GREY(11,"#303030"),
LIGHT_GREY(12,"#aaaaaa");
private final int colourIndex;
private final String colourCode;
private final static Map<Integer,CSVPaletteEnum> colourIndexValues=new HashMap<>();
private final static Map<String,CSVPaletteEnum> colourCodeValues=new HashMap<>();
static {
for (CSVPaletteEnum en : CSVPaletteEnum.values()){
colourIndexValues.put(en.getColourIndex(),en);
colourCodeValues.put(en.getColourCode(),en);
}
}
CSVPaletteEnum(int colourIndex, String colourCode) {
this.colourIndex = colourIndex;
this.colourCode = colourCode;
}
public static CSVPaletteEnum valueOfIndex(int value) {
final CSVPaletteEnum val = colourIndexValues.get(value);
return val ;
}
public static CSVPaletteEnum valueOfColour(String value) {
final CSVPaletteEnum val = colourCodeValues.get(value);
return val ;
}
public int getColourIndex() {
return colourIndex;
}
public String getColourCode() {
return colourCode;
}
public static Map<Integer, CSVPaletteEnum> getColourIndexValues() {
return colourIndexValues;
}
public static Map<String, CSVPaletteEnum> getColourCodeValues() {
return colourCodeValues;
}
}
public static int colorToPaletteIndex(Context context, int color) public static int colorToPaletteIndex(Context context, int color)
{ {
@ -54,23 +112,7 @@ public abstract class ColorUtils
public static int getAndroidTestColor(int index) public static int getAndroidTestColor(int index)
{ {
int palette[] = { return Color.parseColor(CSVPaletteEnum.valueOfIndex(index).getColourCode());
Color.parseColor("#D32F2F"), // 0 red
Color.parseColor("#E64A19"), // 1 orange
Color.parseColor("#F9A825"), // 2 yellow
Color.parseColor("#AFB42B"), // 3 light green
Color.parseColor("#388E3C"), // 4 dark green
Color.parseColor("#00897B"), // 5 teal
Color.parseColor("#00ACC1"), // 6 cyan
Color.parseColor("#039BE5"), // 7 blue
Color.parseColor("#5E35B1"), // 8 deep purple
Color.parseColor("#8E24AA"), // 9 purple
Color.parseColor("#D81B60"), // 10 pink
Color.parseColor("#303030"), // 11 dark grey
Color.parseColor("#aaaaaa") // 12 light grey
};
return palette[index];
} }
public static int getColor(Context context, int paletteColor) public static int getColor(Context context, int paletteColor)
@ -82,8 +124,8 @@ public abstract class ColorUtils
int palette[] = res.getPalette(); int palette[] = res.getPalette();
if (paletteColor < 0 || paletteColor >= palette.length) if (paletteColor < 0 || paletteColor >= palette.length)
{ {
Log.w("ColorHelper", Log.w(COLOR_HELPER_TAG,
String.format("Invalid color: %d. Returning default.", String.format(INVALID_COLOR_MESSAGE,
paletteColor)); paletteColor));
paletteColor = 0; paletteColor = 0;
} }
@ -93,10 +135,7 @@ public abstract class ColorUtils
public static int mixColors(int color1, int color2, float amount) public static int mixColors(int color1, int color2, float amount)
{ {
final byte ALPHA_CHANNEL = 24;
final byte RED_CHANNEL = 16;
final byte GREEN_CHANNEL = 8;
final byte BLUE_CHANNEL = 0;
final float inverseAmount = 1.0f - amount; final float inverseAmount = 1.0f - amount;

Loading…
Cancel
Save