diff --git a/res/drawable/ic_ui.xml b/res/drawable/ic_ui.xml
new file mode 100644
index 0000000..2781efc
--- /dev/null
+++ b/res/drawable/ic_ui.xml
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml
index 5c18d03..d7f8e7a 100644
--- a/res/values/cherish_arrays.xml
+++ b/res/values/cherish_arrays.xml
@@ -713,4 +713,21 @@
- 4
- 5
+
+
+
+ - @string/ui_style_default
+ - @string/ui_style_no_corner_radius
+ - @string/ui_style_rectangle
+ - @string/ui_style_round_large
+ - @string/ui_style_round_medium
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index 5e9f976..f92f7d3 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -783,4 +783,12 @@
Meme round
Meme round stroke
Meme stroke
+
+
+ UI Style
+ Default
+ No Corner Radius
+ Rectangle
+ Round Large
+ Round Medium
diff --git a/res/xml/cherish_settings_theme.xml b/res/xml/cherish_settings_theme.xml
index 2d4fec4..1fd628d 100644
--- a/res/xml/cherish_settings_theme.xml
+++ b/res/xml/cherish_settings_theme.xml
@@ -40,6 +40,14 @@
android:persistent="false"
android:entries="@array/switch_style_entries"
android:entryValues="@array/switch_style_values" />
+
+
0) {
handleOverlays(ThemesUtils.BRIGHTNESS_SLIDER_THEMES[valueIndex],
- true, mOverlayManager);
+ true, mOverlayService);
}
}
+ } else if (preference == mUIStyle) {
+ String value = (String) newValue;
+ Settings.System.putInt(getActivity().getContentResolver(), Settings.System.UI_STYLE, Integer.valueOf(value));
+ int valueIndex = mUIStyle.findIndexOfValue(value);
+ mUIStyle.setSummary(mUIStyle.getEntries()[valueIndex]);
+ String overlayName = getOverlayName(ThemesUtils.UI_THEMES);
+ if (overlayName != null) {
+ handleOverlays(overlayName, false, mOverlayService);
+ }
+ if (valueIndex > 0) {
+ handleOverlays(ThemesUtils.UI_THEMES[valueIndex],
+ true, mOverlayService);
+ }
+ }
return true;
}
@@ -355,6 +382,28 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
mContentPadding.setValue((int) (res.getDimension(resourceIdPadding) / density));
mSBPadding.setValue((int) (res.getDimension(resourceIdSBPadding) / density));
}
+
+ private String getOverlayName(String[] overlays) {
+ String overlayName = null;
+ for (int i = 0; i < overlays.length; i++) {
+ String overlay = overlays[i];
+ if (CherishUtils.isThemeEnabled(overlay)) {
+ overlayName = overlay;
+ }
+ }
+ return overlayName;
+ }
+
+ private int getOverlayPosition(String[] overlays) {
+ int position = -1;
+ for (int i = 0; i < overlays.length; i++) {
+ String overlay = overlays[i];
+ if (CherishUtils.isThemeEnabled(overlay)) {
+ position = i;
+ }
+ }
+ return position;
+ }
@Override
public int getMetricsCategory() {