diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index 7eb964e..cd4e286 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -607,6 +607,13 @@ Left Center Hidden + Auto hide + Hide clock if launcher is visible + Hide clock at regular interval + Hide duration + Number of seconds to hide clock + Show duration + Number of seconds to wait before hiding clock AM/PM style 24-hour clock is enabled Normal diff --git a/res/xml/cherish_settings_status_bar_clock.xml b/res/xml/cherish_settings_status_bar_clock.xml index 223c320..fbe6335 100644 --- a/res/xml/cherish_settings_status_bar_clock.xml +++ b/res/xml/cherish_settings_status_bar_clock.xml @@ -8,6 +8,40 @@ xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" android:title="@string/status_bar_clock_title"> + + + + + + + + 0); - mClockDatePosition.setOnPreferenceChangeListener(this); - - mClockDateStyle = (SystemSettingListPreference) findPreference(CLOCK_DATE_STYLE); - mClockDateStyle.setEnabled(dateDisplay > 0); - mClockDateStyle.setOnPreferenceChangeListener(this); - - mClockDateFormat = (ListPreference) findPreference(CLOCK_DATE_FORMAT); - if (mClockDateFormat.getValue() == null) { - mClockDateFormat.setValue("EEE"); - } - parseClockDateFormats(); - mClockDateFormat.setEnabled(dateDisplay > 0); - mClockDateFormat.setOnPreferenceChangeListener(this); } @Override public boolean onPreferenceChange(Preference preference, Object newValue) { - AlertDialog dialog; ContentResolver resolver = getActivity().getContentResolver(); - if (preference == mClockDateDisplay) { - int val = Integer.parseInt((String) newValue); - if (val == 0) { - mClockDatePosition.setEnabled(false); - mClockDateStyle.setEnabled(false); - mClockDateFormat.setEnabled(false); - } else { - mClockDatePosition.setEnabled(true); - mClockDateStyle.setEnabled(true); - mClockDateFormat.setEnabled(true); - } - return true; - } else if (preference == mClockDatePosition) { - parseClockDateFormats(); - return true; - } else if (preference == mClockDateStyle) { - parseClockDateFormats(); - return true; - } else if (preference == mClockDateFormat) { - int index = mClockDateFormat.findIndexOfValue((String) newValue); - - if (index == CUSTOM_CLOCK_DATE_FORMAT_INDEX) { - AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); - alert.setTitle(R.string.status_bar_date_string_edittext_title); - alert.setMessage(R.string.status_bar_date_string_edittext_summary); - - final EditText input = new EditText(getActivity()); - String oldText = Settings.System.getString( - resolver, - Settings.System.STATUS_BAR_CLOCK_DATE_FORMAT); - if (oldText != null) { - input.setText(oldText); - } - alert.setView(input); - - alert.setPositiveButton(R.string.menu_save, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialogInterface, int whichButton) { - String value = input.getText().toString(); - if (value.equals("")) { - return; - } - Settings.System.putString(resolver, - Settings.System.STATUS_BAR_CLOCK_DATE_FORMAT, value); - - return; - } - }); - - alert.setNegativeButton(R.string.menu_cancel, - new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialogInterface, int which) { - return; - } - }); - dialog = alert.create(); - dialog.show(); - } else { - if ((String) newValue != null) { - Settings.System.putString(resolver, - Settings.System.STATUS_BAR_CLOCK_DATE_FORMAT, (String) newValue); - } - } - return true; - } return false; } - private void parseClockDateFormats() { - String[] dateEntries = getResources().getStringArray( - R.array.status_bar_date_format_entries_values); - CharSequence parsedDateEntries[]; - parsedDateEntries = new String[dateEntries.length]; - Date now = new Date(); - - int lastEntry = dateEntries.length - 1; - int dateFormat = Settings.System.getIntForUser(getActivity() - .getContentResolver(), Settings.System.STATUS_BAR_CLOCK_DATE_STYLE, 0, UserHandle.USER_CURRENT); - for (int i = 0; i < dateEntries.length; i++) { - if (i == lastEntry) { - parsedDateEntries[i] = dateEntries[i]; - } else { - String newDate; - CharSequence dateString = DateFormat.format(dateEntries[i], now); - if (dateFormat == CLOCK_DATE_STYLE_LOWERCASE) { - newDate = dateString.toString().toLowerCase(); - } else if (dateFormat == CLOCK_DATE_STYLE_UPPERCASE) { - newDate = dateString.toString().toUpperCase(); - } else { - newDate = dateString.toString(); - } - - parsedDateEntries[i] = newDate; - } - } - mClockDateFormat.setEntries(parsedDateEntries); - } - @Override public int getMetricsCategory() { return MetricsEvent.CHERISH_SETTINGS; @@ -225,4 +87,4 @@ public class Clock extends SettingsPreferenceFragment implements */ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.cherish_settings_status_bar_clock); -} \ No newline at end of file +}