Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc1a640b authored by DvTonder's avatar DvTonder Committed by Gerrit Code Review
Browse files

Merge "Quiet Hours: Add 4 state (off, timed inactive, timed active and forced...

Merge "Quiet Hours: Add 4 state (off, timed inactive, timed active and forced on) support" into cm-11.0
parents 9cebc7eb 23b08bc9
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3140,6 +3140,12 @@ public final class Settings {
         */
        public static final String MVNO_ROAMING = "mvno_roaming";

        /**
         * Whether to enforce quiet hours regardless of the timer.
         * @hide
         */
        public static final String QUIET_HOURS_FORCED = "quiet_hours_forced";

        /**
         * Whether to enable quiet hours.
         * @hide
+33 −15
Original line number Diff line number Diff line
@@ -22,24 +22,42 @@ import android.provider.Settings;
import java.util.Calendar;

public class QuietHoursUtils {

    public static boolean inQuietHours(Context context, String option) {
        if (Settings.System.getInt(context.getContentResolver(),
                Settings.System.QUIET_HOURS_FORCED, 0) != 0) {
            // If Quiet hours is forced return immediately
            return true;
        }

        // Check if we are in timed Quiet hours mode
        boolean quietHoursEnabled = Settings.System.getInt(context.getContentResolver(),
                Settings.System.QUIET_HOURS_ENABLED, 0) != 0;
        boolean quietHoursOption = Settings.System.getInt(context.getContentResolver(),
                option, 0) != 0;

        if (quietHoursEnabled && quietHoursOption) {
            int quietHoursStart = Settings.System.getInt(context.getContentResolver(),
                    Settings.System.QUIET_HOURS_START, 0);
            int quietHoursEnd = Settings.System.getInt(context.getContentResolver(),
                    Settings.System.QUIET_HOURS_END, 0);
        boolean quietHoursOption = Settings.System.getInt(context.getContentResolver(),
                option, 0) != 0;
        if (quietHoursEnabled && quietHoursOption && (quietHoursStart != quietHoursEnd)) {
            return inQuietHours(quietHoursStart, quietHoursEnd);
        }

        return false;
    }

    public static boolean inQuietHours(int quietHoursStart, int quietHoursEnd) {
        if (quietHoursStart != quietHoursEnd) {
            // Get the date in "quiet hours" format.
                Calendar calendar = Calendar.getInstance();
                int minutes = calendar.get(Calendar.HOUR_OF_DAY) * 60
                                           + calendar.get(Calendar.MINUTE);
            Calendar cal = Calendar.getInstance();
            int minutes = cal.get(Calendar.HOUR_OF_DAY) * 60 + cal.get(Calendar.MINUTE);

            if (quietHoursEnd < quietHoursStart) {
                // Starts at night, ends in the morning.
                return (minutes > quietHoursStart) || (minutes < quietHoursEnd);
            } else {
                // Starts in the morning, ends at night.
                return (minutes > quietHoursStart) && (minutes < quietHoursEnd);
            }
        }
+106 B (19.4 KiB)
Loading image diff...
+19.7 KiB
Loading image diff...
+19.5 KiB
Loading image diff...
Loading