Cherish: Allow changing monet settings from cherish settings[2/2]

Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
SagarMakhar
2021-11-04 14:28:05 +00:00
committed by Hưng Phan
parent 3faa844e53
commit 0dd9c5b784
3 changed files with 72 additions and 0 deletions

View File

@@ -590,4 +590,12 @@
<!-- Custom Wi-Fi bar icons --> <!-- Custom Wi-Fi bar icons -->
<string name="custom_wifi_bar_title">Wi-Fi</string> <string name="custom_wifi_bar_title">Wi-Fi</string>
<!-- Monet Engine -->
<string name="monet_engine_custom_color_title">Use custom color</string>
<string name="monet_engine_custom_color_summary">Use custom color for monet engine instead of wallpaper colors</string>
<string name="monet_engine_color_override_title">Custom color</string>
<string name="monet_engine_white_luminance_user_title">White luminance</string>
<string name="monet_engine_accurate_shades_title">Use accurate shades</string>
<string name="monet_engine_chroma_factor_title">Chroma factor</string>
<string name="monet_engine_linear_lightness_title">Use linear lightness</string>
</resources> </resources>

View File

@@ -18,6 +18,51 @@
android:title="@string/theme_title" android:title="@string/theme_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"> xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory
android:key="monel_category"
android:title="Monet">
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_custom_color"
android:title="@string/monet_engine_custom_color_title"
android:summary="@string/monet_engine_custom_color_summary"
android:defaultValue="false" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="monet_engine_color_override"
android:title="@string/monet_engine_color_override_title"
android:dependency="monet_engine_custom_color"
android:defaultValue="0xffffff" />
<com.cherish.settings.preferences.SecureSettingSeekBarPreference
android:key="monet_engine_white_luminance_user"
android:title="@string/monet_engine_white_luminance_user_title"
android:defaultValue="425"
android:max="1000"
settings:min="200"
settings:interval="100"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_accurate_shades"
android:title="@string/monet_engine_accurate_shades_title"
android:defaultValue="true" />
<com.cherish.settings.preferences.SecureSettingSeekBarPreference
android:key="monet_engine_chroma_factor"
android:title="@string/monet_engine_chroma_factor_title"
android:defaultValue="100"
android:max="400"
settings:min="50"
settings:interval="50"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_linear_lightness"
android:title="@string/monet_engine_linear_lightness_title"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory <PreferenceCategory
android:title="@string/theme_customization_category"> android:title="@string/theme_customization_category">

View File

@@ -70,12 +70,15 @@ import net.margaritov.preference.colorpicker.ColorPickerPreference;
public class ThemeSettings extends DashboardFragment implements OnPreferenceChangeListener { public class ThemeSettings extends DashboardFragment implements OnPreferenceChangeListener {
public static final String TAG = "ThemeSettings"; public static final String TAG = "ThemeSettings";
private String MONET_ENGINE_COLOR_OVERRIDE = "monet_engine_color_override";
static final int DEFAULT_QS_PANEL_COLOR = 0xffffffff; static final int DEFAULT_QS_PANEL_COLOR = 0xffffffff;
static final int DEFAULT = 0xff1a73e8; static final int DEFAULT = 0xff1a73e8;
private Context mContext; private Context mContext;
private IOverlayManager mOverlayService; private IOverlayManager mOverlayService;
private UiModeManager mUiModeManager; private UiModeManager mUiModeManager;
private ColorPickerPreference mMonetColor;
@Override @Override
protected String getLogTag() { protected String getLogTag() {
@@ -117,6 +120,13 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
ContentResolver resolver = getActivity().getContentResolver(); ContentResolver resolver = getActivity().getContentResolver();
final Resources res = getResources(); final Resources res = getResources();
mContext = getActivity(); mContext = getActivity();
mMonetColor = (ColorPickerPreference)findPreference(MONET_ENGINE_COLOR_OVERRIDE);
int intColor = Settings.Secure.getInt(resolver, MONET_ENGINE_COLOR_OVERRIDE, Color.WHITE);
String hexColor = String.format("#%08x", (0xffffff & intColor));
mMonetColor.setNewPreviewColor(intColor);
mMonetColor.setSummary(hexColor);
mMonetColor.setOnPreferenceChangeListener(this);
} }
public boolean isAvailable() { public boolean isAvailable() {
@@ -126,6 +136,15 @@ public class ThemeSettings extends DashboardFragment implements OnPreferenceChan
@Override @Override
public boolean onPreferenceChange(Preference preference, Object objValue) { public boolean onPreferenceChange(Preference preference, Object objValue) {
ContentResolver resolver = getActivity().getContentResolver(); ContentResolver resolver = getActivity().getContentResolver();
if (preference == mMonetColor) {
String hex = ColorPickerPreference.convertToARGB(Integer
.parseInt(String.valueOf(objValue)));
preference.setSummary(hex);
int intHex = ColorPickerPreference.convertToColorInt(hex);
Settings.Secure.putInt(resolver,
MONET_ENGINE_COLOR_OVERRIDE, intHex);
return true;
}
return false; return false;
} }