diff --git a/res/drawable/ic_switch_theme.xml b/res/drawable/ic_switch_theme.xml new file mode 100644 index 0000000..d89cf76 --- /dev/null +++ b/res/drawable/ic_switch_theme.xml @@ -0,0 +1,9 @@ + + + diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index 67f485e..80c6d80 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -353,4 +353,16 @@ 1 0 + + + + @string/switch_default + @string/switch_md2 + @string/switch_oneplus + + + 0 + 1 + 2 + diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index c52fb15..77ef825 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -440,5 +440,11 @@ Force expanded notifications Force apps that support expanded notifications + + + Switch appearance + Default + Material Design 2 + OnePlus diff --git a/res/xml/cherish_settings_theme.xml b/res/xml/cherish_settings_theme.xml index 5d176e4..6ff8e33 100644 --- a/res/xml/cherish_settings_theme.xml +++ b/res/xml/cherish_settings_theme.xml @@ -32,6 +32,14 @@ android:entries="@array/theme_type_titles" android:entryValues="@array/theme_type_values" android:defaultValue="1"/> + + diff --git a/src/com/cherish/settings/fragments/ThemeSettings.java b/src/com/cherish/settings/fragments/ThemeSettings.java index 668e122..d57a4e9 100644 --- a/src/com/cherish/settings/fragments/ThemeSettings.java +++ b/src/com/cherish/settings/fragments/ThemeSettings.java @@ -52,6 +52,7 @@ public class ThemeSettings extends SettingsPreferenceFragment implements private static final String SYSUI_ROUNDED_CONTENT_PADDING = "sysui_rounded_content_padding"; private static final String SYSUI_STATUS_BAR_PADDING = "sysui_status_bar_padding"; private static final String SYSUI_ROUNDED_FWVALS = "sysui_rounded_fwvals"; + private static final String SWITCH_STYLE = "switch_style"; private ColorPickerPreference mThemeColor; private ColorPickerPreference mGradientColor; @@ -62,6 +63,7 @@ public class ThemeSettings extends SettingsPreferenceFragment implements private CustomSeekBarPreference mContentPadding; private CustomSeekBarPreference mSBPadding; private SwitchPreference mRoundedFwvals; + private ListPreference mSwitchStyle; @Override public void onCreate(Bundle icicle) { @@ -114,6 +116,14 @@ public class ThemeSettings extends SettingsPreferenceFragment implements mRoundedFwvals = (SwitchPreference) findPreference(SYSUI_ROUNDED_FWVALS); mRoundedFwvals.setOnPreferenceChangeListener(this); + mSwitchStyle = (ListPreference) findPreference(SWITCH_STYLE); + int switchStyle = Settings.System.getInt(resolver, + Settings.System.SWITCH_STYLE, 1); + int switchValueIndex = mSwitchStyle.findIndexOfValue(String.valueOf(switchStyle)); + mSwitchStyle.setValueIndex(switchValueIndex >= 0 ? switchValueIndex : 0); + mSwitchStyle.setSummary(mSwitchStyle.getEntry()); + mSwitchStyle.setOnPreferenceChangeListener(this); + mOverlayService = IOverlayManager.Stub .asInterface(ServiceManager.getService(Context.OVERLAY_SERVICE)); mUiModeManager = getContext().getSystemService(UiModeManager.class); @@ -230,6 +240,11 @@ public class ThemeSettings extends SettingsPreferenceFragment implements (int) objValue, UserHandle.USER_CURRENT); } else if (preference == mRoundedFwvals) { restoreCorners(); + } else if (preference == mSwitchStyle) { + String value = (String) objValue; + Settings.System.putInt(resolver, Settings.System.SWITCH_STYLE, Integer.valueOf(value)); + int valueIndex = mSwitchStyle.findIndexOfValue(value); + mSwitchStyle.setSummary(mSwitchStyle.getEntries()[valueIndex]); } return true; }