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) {