diff --git a/res/drawable/ic_upset.xml b/res/drawable/ic_upset.xml
new file mode 100644
index 0000000..7bca929
--- /dev/null
+++ b/res/drawable/ic_upset.xml
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/res/values/cherish_arrays.xml b/res/values/cherish_arrays.xml
index 8f81843..21bef1c 100644
--- a/res/values/cherish_arrays.xml
+++ b/res/values/cherish_arrays.xml
@@ -1340,4 +1340,21 @@
- 1
- 2
+
+
+
+ - @string/disabled
+ - @string/night_display_auto_mode_twilight
+ - @string/night_display_auto_mode_custom
+ - @string/always_on_display_schedule_mixed_sunset
+ - @string/always_on_display_schedule_mixed_sunrise
+
+
+
+ - 0
+ - 1
+ - 2
+ - 3
+ - 4
+
diff --git a/res/values/cherish_strings.xml b/res/values/cherish_strings.xml
index f656101..83d237e 100644
--- a/res/values/cherish_strings.xml
+++ b/res/values/cherish_strings.xml
@@ -51,6 +51,7 @@
Cancel
Save
Default
+ Disabled
Color Picker
@@ -1139,4 +1140,11 @@
Purple
Navbar Colors
Select color
+
+
+ Always on display schedule
+ Sunset
+ Sunrise
+ Turns on from sunset till a time
+ Turns on from a time till sunrise
diff --git a/res/xml/cherish_settings_aod_schedule.xml b/res/xml/cherish_settings_aod_schedule.xml
new file mode 100644
index 0000000..4eb7b5f
--- /dev/null
+++ b/res/xml/cherish_settings_aod_schedule.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/xml/cherish_settings_lockscreen.xml b/res/xml/cherish_settings_lockscreen.xml
index 174e95b..9077119 100644
--- a/res/xml/cherish_settings_lockscreen.xml
+++ b/res/xml/cherish_settings_lockscreen.xml
@@ -53,6 +53,12 @@
android:title="@string/fprint_error_vib_title"
android:summary="@string/fprint_error_vib_summary"
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";
+ }
+ if (mode != MODE_MIXED_SUNSET) mSincePref.setSummary(sinceSummary);
+ if (mode != MODE_MIXED_SUNRISE) 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, Integer.parseInt(mModePref.getValue()));
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
+ }
+
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider(R.xml.cherish_settings_aod_schedule);
+}
diff --git a/src/com/cherish/settings/fragments/LockScreenSettings.java b/src/com/cherish/settings/fragments/LockScreenSettings.java
index d36b66d..3a4c0ea 100644
--- a/src/com/cherish/settings/fragments/LockScreenSettings.java
+++ b/src/com/cherish/settings/fragments/LockScreenSettings.java
@@ -28,6 +28,7 @@ import android.content.res.Resources;
import android.hardware.fingerprint.FingerprintManager;
import android.net.Uri;
import android.os.Bundle;
+import android.os.UserHandle;
import androidx.preference.SwitchPreference;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
@@ -57,6 +58,13 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
private static final String LOCKOWNER_FONT_SIZE = "lockowner_font_size";
private static final String KEY_FOD_RECOGNIZING_ANIMATION = "fod_recognizing_animation";
private static final String KEY_FOD_RECOGNIZING_ANIMATION_LIST = "fod_recognizing_animation_list";
+ private static final String AOD_SCHEDULE_KEY = "always_on_display_schedule";
+
+ static final int MODE_DISABLED = 0;
+ static final int MODE_NIGHT = 1;
+ static final int MODE_TIME = 2;
+ static final int MODE_MIXED_SUNSET = 3;
+ static final int MODE_MIXED_SUNRISE = 4;
private ListPreference mLockClockFonts;
private ListPreference mLockDateFonts;
@@ -66,6 +74,7 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
private CustomSeekBarPreference mDateFontSize;
private CustomSeekBarPreference mOwnerInfoFontSize;
private CustomSeekBarPreference mCustomTextClockFontSize;
+ private Preference mAODPref;
@Override
public void onCreate(Bundle icicle) {
@@ -135,6 +144,39 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
prefScreen.removePreference(mFODSwitchPref);
prefScreen.removePreference(mFODListViewPref);
}
+
+ 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, MODE_DISABLED, UserHandle.USER_CURRENT);
+ switch (mode) {
+ default:
+ case MODE_DISABLED:
+ mAODPref.setSummary(R.string.disabled);
+ break;
+ case MODE_NIGHT:
+ mAODPref.setSummary(R.string.night_display_auto_mode_twilight);
+ break;
+ case MODE_TIME:
+ mAODPref.setSummary(R.string.night_display_auto_mode_custom);
+ break;
+ case MODE_MIXED_SUNSET:
+ mAODPref.setSummary(R.string.always_on_display_schedule_mixed_sunset);
+ break;
+ case MODE_MIXED_SUNRISE:
+ mAODPref.setSummary(R.string.always_on_display_schedule_mixed_sunrise);
+ break;
+ }
}
public boolean onPreferenceChange(Preference preference, Object newValue) {