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

Commit cb5a4ddf authored by Evan Charlton's avatar Evan Charlton
Browse files

Remove code duplication in NotificationManagerService

Centralize the inQuietHours logic instead of copy-pasting it.

Change-Id: I70991084cf0ef41b04245210607143d1f81ca1a5
parent a1a5b488
Loading
Loading
Loading
Loading
+18 −29
Original line number Diff line number Diff line
@@ -91,6 +91,8 @@ class NotificationManagerService extends INotificationManager.Stub {

    private static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION;

    private static final Calendar CALENDAR = Calendar.getInstance();

    final Context mContext;

    final IActivityManager mAm;
@@ -776,20 +778,7 @@ class NotificationManagerService extends INotificationManager.Stub {
        }

        synchronized (mNotificationList) {
            final boolean inQuietHours;
            if (mQuietHoursEnabled && (mQuietHoursStart != mQuietHoursEnd)) {
                // Get the date in "quiet hours" format.
                Calendar c = Calendar.getInstance();
                int minutes = c.get(Calendar.HOUR_OF_DAY) * 60 + c.get(Calendar.MINUTE);
                if (mQuietHoursEnd < mQuietHoursStart) {
                    // Starts at night, ends in the morning.
                    inQuietHours = (minutes > mQuietHoursStart) || (minutes < mQuietHoursEnd);
                } else {
                    inQuietHours = (minutes > mQuietHoursStart) && (minutes < mQuietHoursEnd);
                }
            } else {
                inQuietHours = false;
            }
            final boolean inQuietHours = inQuietHours();

            NotificationRecord r = new NotificationRecord(pkg, tag, id, notification);
            NotificationRecord old = null;
@@ -942,6 +931,20 @@ class NotificationManagerService extends INotificationManager.Stub {
        idOut[0] = id;
    }

    private boolean inQuietHours() {
        if (mQuietHoursEnabled && (mQuietHoursStart != mQuietHoursEnd)) {
            // Get the date in "quiet hours" format.
            int minutes = CALENDAR.get(Calendar.HOUR_OF_DAY) * 60 + CALENDAR.get(Calendar.MINUTE);
            if (mQuietHoursEnd < mQuietHoursStart) {
                // Starts at night, ends in the morning.
                return (minutes > mQuietHoursStart) || (minutes < mQuietHoursEnd);
            } else {
                return (minutes > mQuietHoursStart) && (minutes < mQuietHoursEnd);
            }
        }
        return false;
    }

    private boolean checkLight(Notification notification, String pkg) {
        String[] mPackage = findPackage(pkg);
        boolean flashLight = true;
@@ -1358,22 +1361,8 @@ class NotificationManagerService extends INotificationManager.Stub {
                }
            }

            final boolean inQuietHours;
            if (mQuietHoursEnabled && (mQuietHoursStart != mQuietHoursEnd)) {
                // Get the date in "quiet hours" format.
                Calendar c = Calendar.getInstance();
                int minutes = c.get(Calendar.HOUR_OF_DAY) * 60 + c.get(Calendar.MINUTE);
                if (mQuietHoursEnd < mQuietHoursStart) {
                    // Starts at night, ends in the morning.
                    inQuietHours = (minutes > mQuietHoursStart) || (minutes < mQuietHoursEnd);
                } else {
                    inQuietHours = (minutes > mQuietHoursStart) && (minutes < mQuietHoursEnd);
                }
            } else {
                inQuietHours = false;
            }
            // Adjust the LED for quiet hours
            if (inQuietHours && mQuietHoursDim) {
            if (inQuietHours() && mQuietHoursDim) {
                // Cut all of the channels by a factor of 16 to dim on capable
                // hardware.
                // Note that this should fail gracefully on other hardware.