diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml
index c927823..a4612b2 100644
--- a/res/values/cherish_arrays.xml
+++ b/res/values/cherish_arrays.xml
@@ -233,4 +233,16 @@
- 5
+
+
+ - @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 614ce16..9a4de0d 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -502,4 +502,9 @@
Toast app icon
Display the app\'s icon corresponding with the toast
+
+
+ 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 433e512..64b82f9 100644
--- a/res/xml/cherish_settings_lockscreen.xml
+++ b/res/xml/cherish_settings_lockscreen.xml
@@ -41,6 +41,10 @@
+
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) {