Evolver: Allow chroma & luminance to affect secondary colors [2/2]

Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: AnierinB <anierin@evolution-x.org>
This commit is contained in:
Ido Ben-Hur
2024-10-21 11:50:32 +03:00
committed by Joey Huab
parent 8ba3885167
commit 6300313889
3 changed files with 29 additions and 0 deletions

View File

@@ -60,6 +60,8 @@
<string name="monet_engine_luminance_factor_summary">Higher values produce brighter colors</string>
<string name="monet_engine_chroma_factor_title">Chroma factor</string>
<string name="monet_engine_chroma_factor_summary">Higher values produce stronger colors</string>
<string name="monet_engine_whole_palette_title">Whole palette</string>
<string name="monet_engine_whole_palette_summary">Make Luminance and Chroma selection affect secondary colors as well</string>
<string name="monet_engine_tint_background_title">Tint background</string>
<string name="monet_engine_tint_background_summary">Make luminance and chroma selection affect background colors as well</string>
<string name="monet_engine_style_title">Theme style</string>

View File

@@ -74,6 +74,12 @@
settings:units="%"
settings:showSign="true" />
<SwitchPreferenceCompat
android:key="whole_palette"
android:title="@string/monet_engine_whole_palette_title"
android:summary="@string/monet_engine_whole_palette_summary"
android:defaultValue="false" />
<SwitchPreferenceCompat
android:key="tint_background"
android:title="@string/monet_engine_tint_background_title"

View File

@@ -66,6 +66,8 @@ public class MonetSettings extends DashboardFragment implements
"android.theme.customization.luminance_factor";
private static final String OVERLAY_CHROMA_FACTOR =
"android.theme.customization.chroma_factor";
private static final String OVERLAY_WHOLE_PALETTE =
"android.theme.customization.whole_palette";
private static final String OVERLAY_TINT_BACKGROUND =
"android.theme.customization.tint_background";
private static final String COLOR_SOURCE_PRESET = "preset";
@@ -80,6 +82,7 @@ public class MonetSettings extends DashboardFragment implements
private static final String PREF_BG_COLOR = "bg_color";
private static final String PREF_LUMINANCE_FACTOR = "luminance_factor";
private static final String PREF_CHROMA_FACTOR = "chroma_factor";
private static final String PREF_WHOLE_PALETTE = "whole_palette";
private static final String PREF_TINT_BACKGROUND = "tint_background";
private static final int DEFAULT_COLOR = 0xFF1b6ef3;
@@ -91,6 +94,7 @@ public class MonetSettings extends DashboardFragment implements
private ColorPickerPreference mBgColorPref;
private CustomSeekBarPreference mLuminancePref;
private CustomSeekBarPreference mChromaPref;
private SwitchPreferenceCompat mWholePalettePref;
private SwitchPreferenceCompat mTintBackgroundPref;
private int mAccentColorValue;
@@ -114,6 +118,7 @@ public class MonetSettings extends DashboardFragment implements
mBgColorPref = findPreference(PREF_BG_COLOR);
mLuminancePref = findPreference(PREF_LUMINANCE_FACTOR);
mChromaPref = findPreference(PREF_CHROMA_FACTOR);
mWholePalettePref = findPreference(PREF_WHOLE_PALETTE);
mTintBackgroundPref = findPreference(PREF_TINT_BACKGROUND);
mSharedPreferences = getActivity().getSharedPreferences(TAG, Context.MODE_PRIVATE);
@@ -126,6 +131,7 @@ public class MonetSettings extends DashboardFragment implements
mBgColorPref.setOnPreferenceChangeListener(this);
mLuminancePref.setOnPreferenceChangeListener(this);
mChromaPref.setOnPreferenceChangeListener(this);
mWholePalettePref.setOnPreferenceChangeListener(this);
mTintBackgroundPref.setOnPreferenceChangeListener(this);
}
@@ -166,6 +172,7 @@ public class MonetSettings extends DashboardFragment implements
} else {
both = false;
}
final boolean wholePalette = object.optInt(OVERLAY_WHOLE_PALETTE, 0) == 1;
final boolean tintBG = object.optInt(OVERLAY_TINT_BACKGROUND, 0) == 1;
final float lumin = (float) object.optDouble(OVERLAY_LUMINANCE_FACTOR, 1d);
final float chroma = (float) object.optDouble(OVERLAY_CHROMA_FACTOR, 1d);
@@ -205,6 +212,7 @@ public class MonetSettings extends DashboardFragment implements
if (chroma > 1d) chromaV = Math.round((chroma - 1f) * 100f);
else if (chroma < 1d) chromaV = -1 * Math.round((1f - chroma) * 100f);
mChromaPref.setValue(chromaV);
mWholePalettePref.setChecked(wholePalette);
mTintBackgroundPref.setChecked(tintBG);
} catch (JSONException | IllegalArgumentException ignored) {}
}
@@ -248,6 +256,10 @@ public class MonetSettings extends DashboardFragment implements
int value = (Integer) newValue;
setChromaValue(value);
return true;
} else if (preference == mWholePalettePref) {
boolean value = (Boolean) newValue;
setWholePaletteValue(value);
return true;
} else if (preference == mTintBackgroundPref) {
boolean value = (Boolean) newValue;
setTintBackgroundValue(value);
@@ -369,6 +381,15 @@ public class MonetSettings extends DashboardFragment implements
} catch (JSONException | IllegalArgumentException ignored) {}
}
private void setWholePaletteValue(boolean whole) {
try {
JSONObject object = getSettingsJson();
if (!whole) object.remove(OVERLAY_WHOLE_PALETTE);
else object.putOpt(OVERLAY_WHOLE_PALETTE, 1);
putSettingsJson(object);
} catch (JSONException | IllegalArgumentException ignored) {}
}
private void setTintBackgroundValue(boolean tint) {
try {
JSONObject object = getSettingsJson();