diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml index 6be4212..89acfc6 100644 --- a/res/values/cherish_arrays.xml +++ b/res/values/cherish_arrays.xml @@ -276,4 +276,17 @@ 4 + + + @string/disabled + @string/night_display_auto_mode_twilight + @string/night_display_auto_mode_custom + + + + 0 + 1 + 2 + + diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml index e30abb2..b039a0b 100644 --- a/res/values/cherish_strings.xml +++ b/res/values/cherish_strings.xml @@ -394,4 +394,9 @@ Battery estimates Show estimated remaining battery life next to the icon + + + Always on display schedule + Sunset + Sunrise diff --git a/res/xml/always_on_display_schedule.xml b/res/xml/always_on_display_schedule.xml new file mode 100644 index 0000000..3157bb4 --- /dev/null +++ b/res/xml/always_on_display_schedule.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/res/xml/cherish_settings_lockscreen.xml b/res/xml/cherish_settings_lockscreen.xml index 51702e9..e2021cd 100644 --- a/res/xml/cherish_settings_lockscreen.xml +++ b/res/xml/cherish_settings_lockscreen.xml @@ -34,6 +34,11 @@ android:defaultValue="true" /> + + 12) { + sinceHour -= 12; + sinceSummary += String.valueOf(sinceHour) + ":" + sinceValues[1] + " PM"; + } else { + sinceSummary = times[0].substring(1) + " AM"; + } + if (tillHour > 12) { + tillHour -= 12; + tillSummary += String.valueOf(tillHour) + ":" + tillValues[1] + " PM"; + } else { + tillSummary = times[0].substring(1) + " AM"; + } + mSincePref.setSummary(sinceSummary); + mTillPref.setSummary(tillSummary); + } + + private void updateTimeSetting(boolean since, int hour, int minute) { + String[] times = getCustomTimeSetting(); + String nHour = ""; + String nMinute = ""; + if (hour < 10) nHour += "0"; + if (minute < 10) nMinute += "0"; + nHour += String.valueOf(hour); + nMinute += String.valueOf(minute); + times[since ? 0 : 1] = nHour + ":" + nMinute; + Settings.Secure.putStringForUser(getActivity().getContentResolver(), + Settings.Secure.DOZE_ALWAYS_ON_AUTO_TIME, + times[0] + "," + times[1], UserHandle.USER_CURRENT); + updateTimeSummary(times, 2); + } + + @Override + public int getMetricsCategory() { + return MetricsProto.MetricsEvent.CHERISH_SETTINGS; + } + + public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider(R.xml.always_on_display_schedule); +} diff --git a/src/com/cherish/settings/fragments/LockScreenSettings.java b/src/com/cherish/settings/fragments/LockScreenSettings.java index 98c23f8..3bab4e2 100644 --- a/src/com/cherish/settings/fragments/LockScreenSettings.java +++ b/src/com/cherish/settings/fragments/LockScreenSettings.java @@ -57,6 +57,10 @@ import java.util.List; @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class LockScreenSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener { + + private static final String AOD_SCHEDULE_KEY = "always_on_display_schedule"; + + Preference mAODPref; @Override public void onCreate(Bundle icicle) { @@ -76,11 +80,32 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements } catch (NameNotFoundException e) { e.printStackTrace(); } + + mAODPref = findPreference(AOD_SCHEDULE_KEY); + updateAlwaysOnSummary(); } @Override public void onResume() { super.onResume(); + updateAlwaysOnSummary(); + } + + private void updateAlwaysOnSummary() { + if (mAODPref == null) return; + int mode = Settings.Secure.getIntForUser(getActivity().getContentResolver(), + Settings.Secure.DOZE_ALWAYS_ON_AUTO_MODE, 0, UserHandle.USER_CURRENT); + switch (mode) { + case 0: + mAODPref.setSummary(R.string.disabled); + break; + case 1: + mAODPref.setSummary(R.string.night_display_auto_mode_twilight); + break; + case 2: + mAODPref.setSummary(R.string.night_display_auto_mode_custom); + break; + } } public boolean onPreferenceChange(Preference preference, Object newValue) {