diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 937bdb9..0d119ea 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -779,4 +779,9 @@ Must be in DateFormat eg. MM/dd/yy Enter string + + Clock font style + Clock font size + Clock font color + diff --git a/res/xml/clock_settings.xml b/res/xml/clock_settings.xml index cf9de24..a13ce30 100644 --- a/res/xml/clock_settings.xml +++ b/res/xml/clock_settings.xml @@ -74,6 +74,29 @@ android:entryValues="@array/clock_date_format_entries_values" android:dependency="clock_date_display" /> + + + + + + diff --git a/src/com/cherish/settings/fragments/ClockSettings.java b/src/com/cherish/settings/fragments/ClockSettings.java index b0bf576..90d39dd 100644 --- a/src/com/cherish/settings/fragments/ClockSettings.java +++ b/src/com/cherish/settings/fragments/ClockSettings.java @@ -42,6 +42,8 @@ import com.android.settings.SettingsPreferenceFragment; import com.android.settings.Utils; import com.cherish.settings.preferences.SystemSettingSwitchPreference; +import com.cherish.settings.preferences.CustomSeekBarPreference; +import net.margaritov.preference.colorpicker.ColorPickerPreference; import com.android.internal.logging.nano.MetricsProto; import java.util.Date; @@ -56,10 +58,15 @@ public class ClockSettings extends SettingsPreferenceFragment implements private static final String STATUS_BAR_CLOCK_DATE_DISPLAY = "clock_date_display"; private static final String STATUS_BAR_CLOCK_DATE_STYLE = "clock_date_style"; private static final String STATUS_BAR_CLOCK_DATE_FORMAT = "clock_date_format"; + private static final String STATUS_BAR_CLOCK_COLOR = "status_bar_clock_color"; + private static final String STATUS_BAR_CLOCK_SIZE = "status_bar_clock_size"; + private static final String STATUS_BAR_CLOCK_FONT_STYLE = "status_bar_clock_font_style"; public static final int CLOCK_DATE_STYLE_LOWERCASE = 1; public static final int CLOCK_DATE_STYLE_UPPERCASE = 2; private static final int CUSTOM_CLOCK_DATE_FORMAT_INDEX = 18; + static final int DEFAULT_STATUS_CLOCK_COLOR = 0xffffffff; + private SystemSettingSwitchPreference mStatusBarClockShow; private SystemSettingSwitchPreference mStatusBarSecondsShow; private ListPreference mStatusBarClock; @@ -67,6 +74,9 @@ public class ClockSettings extends SettingsPreferenceFragment implements private ListPreference mClockDateDisplay; private ListPreference mClockDateStyle; private ListPreference mClockDateFormat; + private ColorPickerPreference mClockColor; + private CustomSeekBarPreference mClockSize; + private ListPreference mClockFontStyle; @Override public void onCreate(Bundle icicle) { @@ -75,6 +85,9 @@ public class ClockSettings extends SettingsPreferenceFragment implements PreferenceScreen prefSet = getPreferenceScreen(); ContentResolver resolver = getActivity().getContentResolver(); + int intColor; + String hexColor; + // clock settings mStatusBarClockShow = (SystemSettingSwitchPreference) findPreference(STATUS_BAR_CLOCK); mStatusBarSecondsShow = (SystemSettingSwitchPreference) findPreference(STATUS_BAR_CLOCK_SECONDS); @@ -97,6 +110,26 @@ public class ClockSettings extends SettingsPreferenceFragment implements mStatusBarClock.setSummary(mStatusBarClock.getEntry()); mStatusBarClock.setOnPreferenceChangeListener(this); + mClockColor = (ColorPickerPreference) findPreference(STATUS_BAR_CLOCK_COLOR); + mClockColor.setOnPreferenceChangeListener(this); + intColor = Settings.System.getInt(resolver, + Settings.System.STATUS_BAR_CLOCK_COLOR, DEFAULT_STATUS_CLOCK_COLOR); + hexColor = String.format("#%08x", (0xffffffff & intColor)); + mClockColor.setSummary(hexColor); + mClockColor.setNewPreviewColor(intColor); + + mClockSize = (CustomSeekBarPreference) findPreference(STATUS_BAR_CLOCK_SIZE); + int clockSize = Settings.System.getInt(resolver, + Settings.System.STATUS_BAR_CLOCK_SIZE, 14); + mClockSize.setValue(clockSize / 1); + mClockSize.setOnPreferenceChangeListener(this); + + mClockFontStyle = (ListPreference) findPreference(STATUS_BAR_CLOCK_FONT_STYLE); + int showClockFont = Settings.System.getInt(resolver, + Settings.System.STATUS_BAR_CLOCK_FONT_STYLE, 0); + mClockFontStyle.setValue(String.valueOf(showClockFont)); + mClockFontStyle.setOnPreferenceChangeListener(this); + if (DateFormat.is24HourFormat(getActivity())) { mStatusBarAmPm.setEnabled(false); mStatusBarAmPm.setSummary(R.string.status_bar_am_pm_info); @@ -149,6 +182,8 @@ public class ClockSettings extends SettingsPreferenceFragment implements public boolean onPreferenceChange(Preference preference, Object newValue) { AlertDialog dialog; + ContentResolver resolver = getActivity().getContentResolver(); + if (preference == mStatusBarClockShow) { boolean value = (Boolean) newValue; Settings.System.putInt(getActivity().getContentResolver(), @@ -173,6 +208,26 @@ public class ClockSettings extends SettingsPreferenceFragment implements Settings.System.STATUSBAR_CLOCK_AM_PM_STYLE, statusBarAmPm); mStatusBarAmPm.setSummary(mStatusBarAmPm.getEntries()[index]); return true; + } else if (preference == mClockColor) { + String hex = ColorPickerPreference.convertToARGB( + Integer.valueOf(String.valueOf(newValue))); + preference.setSummary(hex); + int intHex = ColorPickerPreference.convertToColorInt(hex); + Settings.System.putInt(resolver, + Settings.System.STATUS_BAR_CLOCK_COLOR, intHex); + return true; + } else if (preference == mClockSize) { + int width = ((Integer)newValue).intValue(); + Settings.System.putInt(resolver, + Settings.System.STATUS_BAR_CLOCK_SIZE, width); + return true; + } else if (preference == mClockFontStyle) { + int showClockFont = Integer.valueOf((String) newValue); + int index = mClockFontStyle.findIndexOfValue((String) newValue); + Settings.System.putInt(resolver, Settings.System. + STATUS_BAR_CLOCK_FONT_STYLE, showClockFont); + mClockFontStyle.setSummary(mClockFontStyle.getEntries()[index]); + return true; } else if (preference == mClockDateDisplay) { int clockDateDisplay = Integer.valueOf((String) newValue); int index = mClockDateDisplay.findIndexOfValue((String) newValue);