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() {