import androidx.annotation.ColorInt;
import androidx.annotation.ColorLong;
import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
import androidx.lifecycle.MutableLiveData;
import net.ktnx.mobileledger.BuildConfig;
public static final int DEFAULT_HUE_DEG = 261;
public static final int THEME_HUE_STEP_DEG = 5;
public static final int baseHueStep = 60;
+ public static final MutableLiveData<Integer> themeWatch = new MutableLiveData<>(0);
private static final float blueLightness = 0.665f;
private static final float yellowLightness = 0.350f;
private static final int[][] EMPTY_STATES = new int[][]{new int[0]};
+ private static final int SWIPE_COLOR_COUNT = 6;
public static @ColorInt
- int accent;
+ int secondary;
@ColorInt
public static int tableRowDarkBG;
public static int profileThemeId = -1;
- public static MutableLiveData<Integer> themeWatch = new MutableLiveData<>(0);
- private static int SWIPE_COLOR_COUNT = 6;
- private static int[] themeIDs =
+ private static final int[] themeIDs =
{R.style.AppTheme_000, R.style.AppTheme_005, R.style.AppTheme_010, R.style.AppTheme_015,
R.style.AppTheme_020, R.style.AppTheme_025, R.style.AppTheme_030, R.style.AppTheme_035,
R.style.AppTheme_040, R.style.AppTheme_045, R.style.AppTheme_050, R.style.AppTheme_055,
TypedValue tv = new TypedValue();
theme.resolveAttribute(R.attr.table_row_dark_bg, tv, true);
tableRowDarkBG = tv.data;
- theme.resolveAttribute(R.attr.colorAccent, tv, true);
- accent = tv.data;
+ theme.resolveAttribute(R.attr.colorSecondary, tv, true);
+ secondary = tv.data;
// trigger theme observers
themeWatch.postValue(themeWatch.getValue() + 1);
public static float baseHueLightness(int baseHueDegrees) {
switch (baseHueDegrees % 360) {
case 0:
- return 0.450f; // red
+ return 0.550f; // red
case 60:
- return 0.400f; // yellow
+ return 0.250f; // yellow
case 120:
- return 0.400f; // green
+ return 0.290f; // green
case 180:
- return 0.400f; // cyan
+ return 0.300f; // cyan
case 240:
- return 0.750f; // blue
+ return 0.710f; // blue
case 300:
- return 0.500f; // magenta
+ return 0.450f; // magenta
default:
throw new IllegalStateException(
String.format(Locale.US, "baseHueLightness called with invalid value %d",
public static @ColorInt
int getPrimaryColorForHue(int hueDegrees) {
int result = hslColor(hueDegrees / 360f, 0.845f, hueLightness(hueDegrees));
- debug("colors", String.format(Locale.ENGLISH, "getPrimaryColorForHue(%d) = %x", hueDegrees,
- result));
+// debug("colors", String.format(Locale.ENGLISH, "getPrimaryColorForHue(%d) = %x",
+// hueDegrees,
+// result));
return result;
}
public static void setupTheme(Activity activity) {
- MobileLedgerProfile profile = Data.profile.getValue();
+ MobileLedgerProfile profile = Data.getProfile();
setupTheme(activity, profile);
}
- public static void setupTheme(Activity activity, MobileLedgerProfile profile) {
+ public static void setupTheme(Activity activity, @Nullable MobileLedgerProfile profile) {
final int themeHue = (profile == null) ? -1 : profile.getThemeHue();
setupTheme(activity, themeHue);
}