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;
}