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

Commit 5098977b authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Change time methods to durations.

Test: cts, cts verifier, runtest systemui-notification
Change-Id: Ia612f59e91f3a3e1de14cd7217fe18ecaf61033c
parent df0824ad
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -2702,11 +2702,11 @@ public class Notification implements Parcelable
        }

        /**
         * Specifies the time at which this notification should be canceled, if it is not already
         * canceled.
         * Specifies a duration in milliseconds after which this notification should be canceled,
         * if it is not already canceled.
         */
        public Builder setTimeout(long when) {
            mN.mTimeout = when;
        public Builder setTimeout(long durationMs) {
            mN.mTimeout = durationMs;
            return this;
        }

+4 −4
Original line number Diff line number Diff line
@@ -547,20 +547,20 @@ public abstract class NotificationListenerService extends Service {
     * Inform the notification manager about snoozing a specific notification.
     * <p>
     * Use this if your listener has a user interface that allows the user to snooze a notification
     * until a given time. It should be called after the user snoozes a single notification using
     * for a time. It should be called after the user snoozes a single notification using
     * your UI; upon being informed, the notification manager will actually remove the notification
     * and you will get an {@link #onNotificationRemoved(StatusBarNotification)} callback. When the
     * snoozing period expires, you will get a
     * {@link #onNotificationPosted(StatusBarNotification, RankingMap)} callback for the
     * notification.
     * @param key The key of the notification to snooze
     * @param snoozeUntil A time in the future, in milliseconds.
     * @param durationMs A duration to snooze the notification for, in milliseconds.
     */
    public final void snoozeNotification(String key, long snoozeUntil) {
    public final void snoozeNotification(String key, long durationMs) {
        if (!isBound()) return;
        try {
            getNotificationInterface().snoozeNotificationUntilFromListener(
                    mWrapper, key, snoozeUntil);
                    mWrapper, key, durationMs);
        } catch (android.os.RemoteException ex) {
            Log.v(TAG, "Unable to contact notification manager", ex);
        }
+2 −3
Original line number Diff line number Diff line
@@ -5742,9 +5742,8 @@ public class StatusBar extends SystemUI implements DemoMode,
        if (snoozeOption.criterion != null) {
            mNotificationListener.snoozeNotification(sbn.getKey(), snoozeOption.criterion.getId());
        } else {
            GregorianCalendar snoozeUntil = new GregorianCalendar();
            snoozeUntil.add(Calendar.MINUTE, snoozeOption.snoozeForMinutes);
            mNotificationListener.snoozeNotification(sbn.getKey(), snoozeUntil.getTimeInMillis());
            mNotificationListener.snoozeNotification(sbn.getKey(),
                    snoozeOption.snoozeForMinutes * 60 * 1000);
        }
    }

+10 −10
Original line number Diff line number Diff line
@@ -2029,11 +2029,11 @@ public class NotificationManagerService extends SystemService {
         */
        @Override
        public void snoozeNotificationUntilFromListener(INotificationListener token, String key,
                long snoozeUntil) {
                long duration) {
            long identity = Binder.clearCallingIdentity();
            try {
                final ManagedServiceInfo info = mListeners.checkServiceTokenLocked(token);
                snoozeNotificationInt(key, snoozeUntil, null, info);
                snoozeNotificationInt(key, duration, null, info);
            } finally {
                Binder.restoreCallingIdentity(identity);
            }
@@ -3409,7 +3409,7 @@ public class NotificationManagerService extends SystemService {

    @VisibleForTesting
    void scheduleTimeoutLocked(NotificationRecord record) {
        if (record.getNotification().getTimeout() > System.currentTimeMillis()) {
        if (record.getNotification().getTimeout() > 0) {
            final PendingIntent pi = PendingIntent.getBroadcast(getContext(),
                    REQUEST_CODE_TIMEOUT,
                    new Intent(ACTION_NOTIFICATION_TIMEOUT)
@@ -3418,8 +3418,8 @@ public class NotificationManagerService extends SystemService {
                            .addFlags(Intent.FLAG_RECEIVER_FOREGROUND)
                            .putExtra(EXTRA_KEY, record.getKey()),
                    PendingIntent.FLAG_UPDATE_CURRENT);
            mAlarmManager.setExactAndAllowWhileIdle(
                    AlarmManager.RTC_WAKEUP, record.getNotification().getTimeout(), pi);
            mAlarmManager.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP,
                    SystemClock.elapsedRealtime() + record.getNotification().getTimeout(), pi);
        }
    }

@@ -4185,16 +4185,16 @@ public class NotificationManagerService extends SystemService {
        }
    }

    void snoozeNotificationInt(String key, long until, String snoozeCriterionId,
    void snoozeNotificationInt(String key, long duration, String snoozeCriterionId,
            ManagedServiceInfo listener) {
        String listenerName = listener == null ? null : listener.component.toShortString();
        if (until < System.currentTimeMillis() && snoozeCriterionId == null) {
        if (duration <= 0 && snoozeCriterionId == null) {
            return;
        }

        if (DBG) {
            Slog.d(TAG, String.format("snooze event(%s, %d, %s, %s)", key, until, snoozeCriterionId,
                    listenerName));
            Slog.d(TAG, String.format("snooze event(%s, %d, %s, %s)", key, duration,
                    snoozeCriterionId, listenerName));
        }
        // Needs to post so that it can cancel notifications not yet enqueued.
        mHandler.post(new Runnable() {
@@ -4215,7 +4215,7 @@ public class NotificationManagerService extends SystemService {
                                    snoozeCriterionId);
                            mSnoozeHelper.snooze(r);
                        } else {
                            mSnoozeHelper.snooze(r, until);
                            mSnoozeHelper.snooze(r, duration);
                        }
                        savePolicyFile();
                    }
+6 −4
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.os.Binder;
import android.os.SystemClock;
import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.util.ArrayMap;
@@ -125,9 +126,9 @@ public class SnoozeHelper {
    /**
     * Snoozes a notification and schedules an alarm to repost at that time.
     */
    protected void snooze(NotificationRecord record, long until) {
    protected void snooze(NotificationRecord record, long duration) {
        snooze(record);
        scheduleRepost(record.sbn.getPackageName(), record.getKey(), record.getUserId(), until);
        scheduleRepost(record.sbn.getPackageName(), record.getKey(), record.getUserId(), duration);
    }

    /**
@@ -291,13 +292,14 @@ public class SnoozeHelper {
                PendingIntent.FLAG_UPDATE_CURRENT);
    }

    private void scheduleRepost(String pkg, String key, int userId, long time) {
    private void scheduleRepost(String pkg, String key, int userId, long duration) {
        long identity = Binder.clearCallingIdentity();
        try {
            final PendingIntent pi = createPendingIntent(pkg, key, userId);
            mAm.cancel(pi);
            long time = SystemClock.elapsedRealtime() + duration;
            if (DEBUG) Slog.d(TAG, "Scheduling evaluate for " + new Date(time));
            mAm.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, time, pi);
            mAm.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME_WAKEUP, time, pi);
        } finally {
            Binder.restoreCallingIdentity(identity);
        }
Loading