Cherish: Introduce awesome brightness slider and UI style [3/3]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
This commit is contained in:
@@ -53,6 +53,8 @@ import net.margaritov.preference.colorpicker.ColorPickerPreference;
|
||||
|
||||
public class ThemeSettings extends SettingsPreferenceFragment implements
|
||||
OnPreferenceChangeListener {
|
||||
private static final String BRIGHTNESS_SLIDER_STYLE = "brightness_slider_style";
|
||||
private static final String UI_STYLE = "ui_style";
|
||||
private static final String PREF_THEME_SWITCH = "theme_switch";
|
||||
private static final String ACCENT_COLOR = "accent_color";
|
||||
private static final String ACCENT_COLOR_PROP = "persist.sys.theme.accentcolor";
|
||||
@@ -66,6 +68,8 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
||||
private ColorPickerPreference mThemeColor;
|
||||
private ColorPickerPreference mGradientColor;
|
||||
private ListPreference mThemeSwitch;
|
||||
private ListPreference mBrightnessSliderStyle;
|
||||
private ListPreference mUIStyle;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
@@ -76,6 +80,66 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
||||
PreferenceScreen prefScreen = getPreferenceScreen();
|
||||
ContentResolver resolver = getActivity().getContentResolver();
|
||||
|
||||
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(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
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 false;
|
||||
}
|
||||
});
|
||||
|
||||
mBrightnessSliderStyle = (ListPreference) findPreference(BRIGHTNESS_SLIDER_STYLE);
|
||||
int BrightnessSliderStyle = Settings.System.getInt(getActivity().getContentResolver(),
|
||||
Settings.System.BRIGHTNESS_SLIDER_STYLE, 0);
|
||||
int BrightnessSliderStyleValue = getOverlayPosition(ThemesUtils.BRIGHTNESS_SLIDER_THEMES);
|
||||
if (BrightnessSliderStyleValue != 0) {
|
||||
mBrightnessSliderStyle.setValue(String.valueOf(BrightnessSliderStyle));
|
||||
}
|
||||
mBrightnessSliderStyle.setSummary(mBrightnessSliderStyle.getEntry());
|
||||
mBrightnessSliderStyle.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@Override
|
||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||
if (preference == mBrightnessSliderStyle) {
|
||||
String value = (String) newValue;
|
||||
Settings.System.putInt(getActivity().getContentResolver(), Settings.System.BRIGHTNESS_SLIDER_STYLE, Integer.valueOf(value));
|
||||
int valueIndex = mBrightnessSliderStyle.findIndexOfValue(value);
|
||||
mBrightnessSliderStyle.setSummary(mBrightnessSliderStyle.getEntries()[valueIndex]);
|
||||
String overlayName = getOverlayName(ThemesUtils.BRIGHTNESS_SLIDER_THEMES);
|
||||
if (overlayName != null) {
|
||||
handleOverlays(overlayName, false, mOverlayService);
|
||||
}
|
||||
if (valueIndex > 0) {
|
||||
handleOverlays(ThemesUtils.BRIGHTNESS_SLIDER_THEMES[valueIndex],
|
||||
true, mOverlayService);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
mUiModeManager = getContext().getSystemService(UiModeManager.class);
|
||||
|
||||
mOverlayService = IOverlayManager.Stub
|
||||
@@ -264,6 +328,28 @@ public class ThemeSettings extends SettingsPreferenceFragment implements
|
||||
}
|
||||
}
|
||||
|
||||
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() {
|
||||
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
|
||||
|
||||
Reference in New Issue
Block a user