Cherish: Introduce UI Style Picker [2/3]
@ZeNiXxX: * Allow changing UI shape * Default, Round(M+L), Rectangle and NoCornerRadius Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
7
res/drawable/ic_ui.xml
Normal file
7
res/drawable/ic_ui.xml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:height="24dp"
|
||||||
|
android:width="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path android:fillColor="?android:attr/colorControlNormal" android:pathData="M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A9,9 0 0,0 21,12C21,11.5 20.96,11 20.87,10.5C20.6,10 20,10 20,10H18V9C18,8 17,8 17,8H15V7C15,6 14,6 14,6H13V4C13,3 12,3 12,3M9.5,6A1.5,1.5 0 0,1 11,7.5A1.5,1.5 0 0,1 9.5,9A1.5,1.5 0 0,1 8,7.5A1.5,1.5 0 0,1 9.5,6M6.5,10A1.5,1.5 0 0,1 8,11.5A1.5,1.5 0 0,1 6.5,13A1.5,1.5 0 0,1 5,11.5A1.5,1.5 0 0,1 6.5,10M11.5,11A1.5,1.5 0 0,1 13,12.5A1.5,1.5 0 0,1 11.5,14A1.5,1.5 0 0,1 10,12.5A1.5,1.5 0 0,1 11.5,11M16.5,13A1.5,1.5 0 0,1 18,14.5A1.5,1.5 0 0,1 16.5,16H16.5A1.5,1.5 0 0,1 15,14.5H15A1.5,1.5 0 0,1 16.5,13M11,16A1.5,1.5 0 0,1 12.5,17.5A1.5,1.5 0 0,1 11,19A1.5,1.5 0 0,1 9.5,17.5A1.5,1.5 0 0,1 11,16Z" />
|
||||||
|
</vector>
|
||||||
@@ -713,4 +713,21 @@
|
|||||||
<item>4</item>
|
<item>4</item>
|
||||||
<item>5</item>
|
<item>5</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Notification Background styles -->
|
||||||
|
<string-array name="ui_style_selector_entries" translatable="false">
|
||||||
|
<item>@string/ui_style_default</item>
|
||||||
|
<item>@string/ui_style_no_corner_radius</item>
|
||||||
|
<item>@string/ui_style_rectangle</item>
|
||||||
|
<item>@string/ui_style_round_large</item>
|
||||||
|
<item>@string/ui_style_round_medium</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="ui_style_selector_values" translatable="false">
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
<item>3</item>
|
||||||
|
<item>4</item>
|
||||||
|
</string-array>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -783,4 +783,12 @@
|
|||||||
<string name="brightness_slider_style_memeround">Meme round</string>
|
<string name="brightness_slider_style_memeround">Meme round</string>
|
||||||
<string name="brightness_slider_style_memeroundstroke">Meme round stroke</string>
|
<string name="brightness_slider_style_memeroundstroke">Meme round stroke</string>
|
||||||
<string name="brightness_slider_style_memestroke">Meme stroke</string>
|
<string name="brightness_slider_style_memestroke">Meme stroke</string>
|
||||||
|
|
||||||
|
<!-- GUI styles -->
|
||||||
|
<string name="ui_style_title">UI Style</string>
|
||||||
|
<string name="ui_style_default">Default</string>
|
||||||
|
<string name="ui_style_no_corner_radius">No Corner Radius</string>
|
||||||
|
<string name="ui_style_rectangle">Rectangle</string>
|
||||||
|
<string name="ui_style_round_large">Round Large</string>
|
||||||
|
<string name="ui_style_round_medium">Round Medium</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -41,6 +41,14 @@
|
|||||||
android:entries="@array/switch_style_entries"
|
android:entries="@array/switch_style_entries"
|
||||||
android:entryValues="@array/switch_style_values" />
|
android:entryValues="@array/switch_style_values" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:key="ui_style"
|
||||||
|
android:icon="@drawable/ic_ui"
|
||||||
|
android:title="@string/ui_style_title"
|
||||||
|
android:entries="@array/ui_style_selector_entries"
|
||||||
|
android:entryValues="@array/ui_style_selector_values"
|
||||||
|
android:persistent="false" />
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
android:key="qs_tile_style"
|
android:key="qs_tile_style"
|
||||||
android:icon="@drawable/ic_shape2_icon"
|
android:icon="@drawable/ic_shape2_icon"
|
||||||
|
|||||||
@@ -53,8 +53,10 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
|||||||
private static final String QS_HEADER_STYLE = "qs_header_style";
|
private static final String QS_HEADER_STYLE = "qs_header_style";
|
||||||
private static final String BRIGHTNESS_SLIDER_STYLE = "brightness_slider_style";
|
private static final String BRIGHTNESS_SLIDER_STYLE = "brightness_slider_style";
|
||||||
|
|
||||||
|
private static final String UI_STYLE = "ui_style";
|
||||||
|
|
||||||
private UiModeManager mUiModeManager;
|
private UiModeManager mUiModeManager;
|
||||||
private IOverlayManager mOverlayService;
|
private IOverlayManager mOverlayService;
|
||||||
private ListPreference mThemeSwitch;
|
private ListPreference mThemeSwitch;
|
||||||
private CustomSeekBarPreference mCornerRadius;
|
private CustomSeekBarPreference mCornerRadius;
|
||||||
private CustomSeekBarPreference mContentPadding;
|
private CustomSeekBarPreference mContentPadding;
|
||||||
@@ -64,6 +66,7 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
|||||||
private ListPreference mQsTileStyle;
|
private ListPreference mQsTileStyle;
|
||||||
private ListPreference mQsHeaderStyle;
|
private ListPreference mQsHeaderStyle;
|
||||||
private ListPreference mBrightnessSliderStyle;
|
private ListPreference mBrightnessSliderStyle;
|
||||||
|
private ListPreference mUIStyle;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
@@ -84,6 +87,16 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mUIStyle = (ListPreference) findPreference(UI_STYLE);
|
||||||
|
int UIStyle = Settings.System.getInt(getActivity().getContentResolver(),
|
||||||
|
Settings.System.UI_STYLE, 0);
|
||||||
|
int UIStyleValue = getOverlayPosition(ThemesUtils.UI_THEMES);
|
||||||
|
if (UIStyleValue != 0) {
|
||||||
|
mUIStyle.setValue(String.valueOf(UIStyle));
|
||||||
|
}
|
||||||
|
mUIStyle.setSummary(mUIStyle.getEntry());
|
||||||
|
mUIStyle.setOnPreferenceChangeListener(this);
|
||||||
|
|
||||||
mBrightnessSliderStyle = (ListPreference) findPreference(BRIGHTNESS_SLIDER_STYLE);
|
mBrightnessSliderStyle = (ListPreference) findPreference(BRIGHTNESS_SLIDER_STYLE);
|
||||||
int BrightnessSliderStyle = Settings.System.getInt(getActivity().getContentResolver(),
|
int BrightnessSliderStyle = Settings.System.getInt(getActivity().getContentResolver(),
|
||||||
Settings.System.BRIGHTNESS_SLIDER_STYLE, 0);
|
Settings.System.BRIGHTNESS_SLIDER_STYLE, 0);
|
||||||
@@ -286,13 +299,27 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
|||||||
mBrightnessSliderStyle.setSummary(mBrightnessSliderStyle.getEntries()[valueIndex]);
|
mBrightnessSliderStyle.setSummary(mBrightnessSliderStyle.getEntries()[valueIndex]);
|
||||||
String overlayName = getOverlayName(ThemesUtils.BRIGHTNESS_SLIDER_THEMES);
|
String overlayName = getOverlayName(ThemesUtils.BRIGHTNESS_SLIDER_THEMES);
|
||||||
if (overlayName != null) {
|
if (overlayName != null) {
|
||||||
handleOverlays(overlayName, false, mOverlayManager);
|
handleOverlays(overlayName, false, mOverlayService);
|
||||||
}
|
}
|
||||||
if (valueIndex > 0) {
|
if (valueIndex > 0) {
|
||||||
handleOverlays(ThemesUtils.BRIGHTNESS_SLIDER_THEMES[valueIndex],
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -356,6 +383,28 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
|||||||
mSBPadding.setValue((int) (res.getDimension(resourceIdSBPadding) / 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
|
@Override
|
||||||
public int getMetricsCategory() {
|
public int getMetricsCategory() {
|
||||||
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
|
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
|
||||||
|
|||||||
Reference in New Issue
Block a user