mirror of https://github.com/tasks/tasks
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
3.4 KiB
Java
125 lines
3.4 KiB
Java
package org.tasks.themes;
|
|
|
|
import android.content.Context;
|
|
import android.content.res.Resources;
|
|
import android.os.Parcel;
|
|
import android.os.Parcelable;
|
|
import android.util.TypedValue;
|
|
import android.view.ContextThemeWrapper;
|
|
import org.tasks.R;
|
|
import org.tasks.dialogs.ColorPalettePicker.Pickable;
|
|
|
|
public class ThemeAccent implements Pickable {
|
|
|
|
public static final int[] ACCENTS =
|
|
new int[] {
|
|
R.style.BlueGreyAccent,
|
|
R.style.RedAccent,
|
|
R.style.PinkAccent,
|
|
R.style.PurpleAccent,
|
|
R.style.DeepPurpleAccent,
|
|
R.style.IndigoAccent,
|
|
R.style.BlueAccent,
|
|
R.style.LightBlueAccent,
|
|
R.style.CyanAccent,
|
|
R.style.TealAccent,
|
|
R.style.GreenAccent,
|
|
R.style.LightGreenAccent,
|
|
R.style.LimeAccent,
|
|
R.style.YellowAccent,
|
|
R.style.AmberAccent,
|
|
R.style.OrangeAccent,
|
|
R.style.DeepOrangeAccent
|
|
};
|
|
public static final int[] ACCENTS_DESATURATED =
|
|
new int[] {
|
|
R.style.BlueGreyAccentDesaturated,
|
|
R.style.RedAccentDesaturated,
|
|
R.style.PinkAccentDesaturated,
|
|
R.style.PurpleAccentDesaturated,
|
|
R.style.DeepPurpleAccentDesaturated,
|
|
R.style.IndigoAccentDesaturated,
|
|
R.style.BlueAccentDesaturated,
|
|
R.style.LightBlueAccentDesaturated,
|
|
R.style.CyanAccentDesaturated,
|
|
R.style.TealAccentDesaturated,
|
|
R.style.GreenAccentDesaturated,
|
|
R.style.LightGreenAccentDesaturated,
|
|
R.style.LimeAccentDesaturated,
|
|
R.style.YellowAccentDesaturated,
|
|
R.style.AmberAccentDesaturated,
|
|
R.style.OrangeAccentDesaturated,
|
|
R.style.DeepOrangeAccentDesaturated
|
|
};
|
|
|
|
public static final Parcelable.Creator<ThemeAccent> CREATOR =
|
|
new Parcelable.Creator<ThemeAccent>() {
|
|
@Override
|
|
public ThemeAccent createFromParcel(Parcel source) {
|
|
return new ThemeAccent(source);
|
|
}
|
|
|
|
@Override
|
|
public ThemeAccent[] newArray(int size) {
|
|
return new ThemeAccent[size];
|
|
}
|
|
};
|
|
private final int style;
|
|
@Deprecated private final int accentColor;
|
|
|
|
public ThemeAccent(Context context, int style) {
|
|
this.style = style;
|
|
Resources.Theme theme = new ContextThemeWrapper(context, style).getTheme();
|
|
this.accentColor = resolveAttribute(theme, com.google.android.material.R.attr.colorSecondary);
|
|
}
|
|
|
|
private ThemeAccent(Parcel source) {
|
|
style = source.readInt();
|
|
accentColor = source.readInt();
|
|
}
|
|
|
|
private static int resolveAttribute(Resources.Theme theme, int attribute) {
|
|
TypedValue typedValue = new TypedValue();
|
|
theme.resolveAttribute(attribute, typedValue, true);
|
|
return typedValue.data;
|
|
}
|
|
|
|
public void applyStyle(Resources.Theme theme) {
|
|
theme.applyStyle(style, true);
|
|
}
|
|
|
|
@Override
|
|
public int getPickerColor() {
|
|
return accentColor;
|
|
}
|
|
|
|
@Override
|
|
public boolean isFree() {
|
|
switch (style) {
|
|
case R.style.BlueGreyAccent:
|
|
case R.style.RedAccent:
|
|
case R.style.BlueGreyAccentDesaturated:
|
|
case R.style.RedAccentDesaturated:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@Deprecated
|
|
public int getAccentColor() {
|
|
return accentColor;
|
|
}
|
|
|
|
@Override
|
|
public int describeContents() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public void writeToParcel(Parcel dest, int flags) {
|
|
dest.writeInt(style);
|
|
dest.writeInt(accentColor);
|
|
}
|
|
}
|