summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Sudheer Shanka <sudheersai@google.com> 2022-02-08 22:03:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2022-02-08 22:03:26 +0000
commit274681e9068171fd1ed24e16f8ed28b418c1326c (patch)
treeeb2ca8720e870481e2049d44ecb6f4cfdeb57ce2
parentbadac481dc64a47ac338328ca56872f71caff61a (diff)
parentcd8cdf3c007b796666398bb947a49434c734b614 (diff)
Merge "Make timestamps of notification related events a bit more accurate."
-rwxr-xr-xservices/core/java/com/android/server/notification/NotificationManagerService.java101
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java23
-rwxr-xr-xservices/tests/uiservicestests/src/com/android/server/notification/NotificationPermissionMigrationTest.java9
3 files changed, 83 insertions, 50 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index dddec42e9b29..aafcc5831718 100755
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -124,6 +124,7 @@ import static com.android.server.utils.PriorityDump.PRIORITY_ARG_NORMAL;
import android.Manifest;
import android.Manifest.permission;
+import android.annotation.ElapsedRealtimeLong;
import android.annotation.MainThread;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -851,7 +852,8 @@ public class NotificationManagerService extends SystemService {
}
if (summary.getSbn().getNotification().flags != oldFlags) {
- mHandler.post(new EnqueueNotificationRunnable(userId, summary, isAppForeground));
+ mHandler.post(new EnqueueNotificationRunnable(userId, summary, isAppForeground,
+ SystemClock.elapsedRealtime()));
}
}
@@ -1373,7 +1375,7 @@ public class NotificationManagerService extends SystemService {
// Force isAppForeground true here, because for sysui's purposes we
// want to adjust the flag behaviour.
mHandler.post(new EnqueueNotificationRunnable(r.getUser().getIdentifier(),
- r, true /* isAppForeground*/));
+ r, true /* isAppForeground*/, SystemClock.elapsedRealtime()));
}
}
}
@@ -1404,7 +1406,7 @@ public class NotificationManagerService extends SystemService {
r.getNotification().flags |= FLAG_ONLY_ALERT_ONCE;
mHandler.post(
new EnqueueNotificationRunnable(r.getUser().getIdentifier(), r,
- true /* isAppForeground */));
+ true /* isAppForeground */, SystemClock.elapsedRealtime()));
}
}
}
@@ -2554,7 +2556,8 @@ public class NotificationManagerService extends SystemService {
if (r != null) {
final boolean isAppForeground =
mActivityManager.getPackageImportance(pkg) == IMPORTANCE_FOREGROUND;
- mHandler.post(new EnqueueNotificationRunnable(userId, r, isAppForeground));
+ mHandler.post(new EnqueueNotificationRunnable(userId, r, isAppForeground,
+ SystemClock.elapsedRealtime()));
}
}
@@ -5750,7 +5753,8 @@ public class NotificationManagerService extends SystemService {
final NotificationRecord removed = findNotificationByKeyLocked(summaries.remove(pkg));
if (removed != null) {
boolean wasPosted = removeFromNotificationListsLocked(removed);
- cancelNotificationLocked(removed, false, REASON_UNAUTOBUNDLED, wasPosted, null);
+ cancelNotificationLocked(removed, false, REASON_UNAUTOBUNDLED, wasPosted, null,
+ SystemClock.elapsedRealtime());
}
}
}
@@ -6481,7 +6485,8 @@ public class NotificationManagerService extends SystemService {
} finally {
Binder.restoreCallingIdentity(token);
}
- mHandler.post(new EnqueueNotificationRunnable(userId, r, isAppForeground));
+ mHandler.post(new EnqueueNotificationRunnable(userId, r, isAppForeground,
+ SystemClock.elapsedRealtime()));
}
private void onConversationRemovedInternal(String pkg, int uid, Set<String> shortcuts) {
@@ -6625,7 +6630,8 @@ public class NotificationManagerService extends SystemService {
r.getNotification().flags |= FLAG_ONLY_ALERT_ONCE;
mHandler.post(
new NotificationManagerService.EnqueueNotificationRunnable(
- r.getUser().getIdentifier(), r, isAppForeground));
+ r.getUser().getIdentifier(), r, isAppForeground,
+ SystemClock.elapsedRealtime()));
}
}
}
@@ -6929,7 +6935,8 @@ public class NotificationManagerService extends SystemService {
NotificationRecordLogger.NotificationEvent.NOTIFICATION_SNOOZED, r);
reportUserInteraction(r);
boolean wasPosted = removeFromNotificationListsLocked(r);
- cancelNotificationLocked(r, false, REASON_SNOOZED, wasPosted, null);
+ cancelNotificationLocked(r, false, REASON_SNOOZED, wasPosted, null,
+ SystemClock.elapsedRealtime());
updateLightsLocked();
if (mSnoozeCriterionId != null) {
mAssistants.notifyAssistantSnoozedLocked(r, mSnoozeCriterionId);
@@ -6956,12 +6963,14 @@ public class NotificationManagerService extends SystemService {
private final int mRank;
private final int mCount;
private final ManagedServiceInfo mListener;
+ private final long mCancellationElapsedTimeMs;
CancelNotificationRunnable(final int callingUid, final int callingPid,
final String pkg, final String tag, final int id,
final int mustHaveFlags, final int mustNotHaveFlags, final boolean sendDelete,
final int userId, final int reason, int rank, int count,
- final ManagedServiceInfo listener) {
+ final ManagedServiceInfo listener,
+ @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
this.mCallingUid = callingUid;
this.mCallingPid = callingPid;
this.mPkg = pkg;
@@ -6975,6 +6984,7 @@ public class NotificationManagerService extends SystemService {
this.mRank = rank;
this.mCount = count;
this.mListener = listener;
+ this.mCancellationElapsedTimeMs = cancellationElapsedTimeMs;
}
@Override
@@ -7037,9 +7047,11 @@ public class NotificationManagerService extends SystemService {
// Cancel the notification.
boolean wasPosted = removeFromNotificationListsLocked(r);
cancelNotificationLocked(
- r, mSendDelete, mReason, mRank, mCount, wasPosted, listenerName);
+ r, mSendDelete, mReason, mRank, mCount, wasPosted, listenerName,
+ mCancellationElapsedTimeMs);
cancelGroupChildrenLocked(r, mCallingUid, mCallingPid, listenerName,
- mSendDelete, childrenFlagChecker, mReason);
+ mSendDelete, childrenFlagChecker, mReason,
+ mCancellationElapsedTimeMs);
updateLightsLocked();
if (mShortcutHelper != null) {
mShortcutHelper.maybeListenForShortcutChangesForBubbles(r,
@@ -7101,11 +7113,14 @@ public class NotificationManagerService extends SystemService {
private final NotificationRecord r;
private final int userId;
private final boolean isAppForeground;
+ private final long enqueueElapsedTimeMs;
- EnqueueNotificationRunnable(int userId, NotificationRecord r, boolean foreground) {
+ EnqueueNotificationRunnable(int userId, NotificationRecord r, boolean foreground,
+ @ElapsedRealtimeLong long enqueueElapsedTimeMs) {
this.userId = userId;
this.r = r;
this.isAppForeground = foreground;
+ this.enqueueElapsedTimeMs = enqueueElapsedTimeMs;
}
@Override
@@ -7178,10 +7193,11 @@ public class NotificationManagerService extends SystemService {
// tell the assistant service about the notification
if (mAssistants.isEnabled()) {
mAssistants.onNotificationEnqueuedLocked(r);
- mHandler.postDelayed(new PostNotificationRunnable(r.getKey()),
+ mHandler.postDelayed(
+ new PostNotificationRunnable(r.getKey(), enqueueElapsedTimeMs),
DELAY_FOR_ASSISTANT_TIME);
} else {
- mHandler.post(new PostNotificationRunnable(r.getKey()));
+ mHandler.post(new PostNotificationRunnable(r.getKey(), enqueueElapsedTimeMs));
}
}
}
@@ -7204,9 +7220,11 @@ public class NotificationManagerService extends SystemService {
protected class PostNotificationRunnable implements Runnable {
private final String key;
+ private final long postElapsedTimeMs;
- PostNotificationRunnable(String key) {
+ PostNotificationRunnable(String key, @ElapsedRealtimeLong long postElapsedTimeMs) {
this.key = key;
+ this.postElapsedTimeMs = postElapsedTimeMs;
}
@Override
@@ -7262,7 +7280,7 @@ public class NotificationManagerService extends SystemService {
mNotificationList.add(r);
mUsageStats.registerPostedByApp(r);
mUsageStatsManagerInternal.reportNotificationPosted(r.getSbn().getOpPkg(),
- r.getSbn().getUser(), SystemClock.elapsedRealtime());
+ r.getSbn().getUser(), postElapsedTimeMs);
final boolean isInterruptive = isVisuallyInterruptive(null, r);
r.setInterruptive(isInterruptive);
r.setTextChanged(isInterruptive);
@@ -7271,7 +7289,7 @@ public class NotificationManagerService extends SystemService {
mNotificationList.set(index, r);
mUsageStats.registerUpdatedByApp(r, old);
mUsageStatsManagerInternal.reportNotificationUpdated(r.getSbn().getOpPkg(),
- r.getSbn().getUser(), SystemClock.elapsedRealtime());
+ r.getSbn().getUser(), postElapsedTimeMs);
// Make sure we don't lose the foreground service state.
notification.flags |=
old.getNotification().flags & FLAG_FOREGROUND_SERVICE;
@@ -7576,7 +7594,7 @@ public class NotificationManagerService extends SystemService {
// notification was a summary and its group key changed.
if (oldIsSummary && (!isSummary || !oldGroup.equals(group))) {
cancelGroupChildrenLocked(old, callingUid, callingPid, null, false /* sendDelete */,
- childrenFlagChecker, REASON_APP_CANCEL);
+ childrenFlagChecker, REASON_APP_CANCEL, SystemClock.elapsedRealtime());
}
}
@@ -8662,14 +8680,17 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
private void cancelNotificationLocked(NotificationRecord r, boolean sendDelete,
@NotificationListenerService.NotificationCancelReason int reason,
- boolean wasPosted, String listenerName) {
- cancelNotificationLocked(r, sendDelete, reason, -1, -1, wasPosted, listenerName);
+ boolean wasPosted, String listenerName,
+ @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
+ cancelNotificationLocked(r, sendDelete, reason, -1, -1, wasPosted, listenerName,
+ cancellationElapsedTimeMs);
}
@GuardedBy("mNotificationLock")
private void cancelNotificationLocked(NotificationRecord r, boolean sendDelete,
@NotificationListenerService.NotificationCancelReason int reason,
- int rank, int count, boolean wasPosted, String listenerName) {
+ int rank, int count, boolean wasPosted, String listenerName,
+ @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
final String canceledKey = r.getKey();
// Get pending intent used to create alarm, use FLAG_NO_CREATE if PendingIntent
@@ -8755,7 +8776,7 @@ public class NotificationManagerService extends SystemService {
case REASON_APP_CANCEL_ALL:
mUsageStats.registerRemovedByApp(r);
mUsageStatsManagerInternal.reportNotificationRemoved(r.getSbn().getOpPkg(),
- r.getUser(), SystemClock.elapsedRealtime());
+ r.getUser(), cancellationElapsedTimeMs);
break;
}
@@ -8932,7 +8953,7 @@ public class NotificationManagerService extends SystemService {
* and none of the {@code mustNotHaveFlags}.
*/
void cancelNotification(final int callingUid, final int callingPid,
- final String pkg, final String tag, final int id,
+ final String pkg, final String tag, int id,
final int mustHaveFlags, final int mustNotHaveFlags, final boolean sendDelete,
final int userId, final int reason, final ManagedServiceInfo listener) {
cancelNotification(callingUid, callingPid, pkg, tag, id, mustHaveFlags, mustNotHaveFlags,
@@ -8954,7 +8975,7 @@ public class NotificationManagerService extends SystemService {
// remove notification call ends up in not removing the notification.
mHandler.scheduleCancelNotification(new CancelNotificationRunnable(callingUid, callingPid,
pkg, tag, id, mustHaveFlags, mustNotHaveFlags, sendDelete, userId, reason, rank,
- count, listener));
+ count, listener, SystemClock.elapsedRealtime()));
}
/**
@@ -8988,6 +9009,7 @@ public class NotificationManagerService extends SystemService {
void cancelAllNotificationsInt(int callingUid, int callingPid, String pkg, String channelId,
int mustHaveFlags, int mustNotHaveFlags, boolean doit, int userId, int reason,
ManagedServiceInfo listener) {
+ final long cancellationElapsedTimeMs = SystemClock.elapsedRealtime();
mHandler.post(new Runnable() {
@Override
public void run() {
@@ -9015,11 +9037,12 @@ public class NotificationManagerService extends SystemService {
cancelAllNotificationsByListLocked(mNotificationList, callingUid, callingPid,
pkg, true /*nullPkgIndicatesUserSwitch*/, channelId, flagChecker,
false /*includeCurrentProfiles*/, userId, false /*sendDelete*/, reason,
- listenerName, true /* wasPosted */);
+ listenerName, true /* wasPosted */, cancellationElapsedTimeMs);
cancelAllNotificationsByListLocked(mEnqueuedNotifications, callingUid,
callingPid, pkg, true /*nullPkgIndicatesUserSwitch*/, channelId,
flagChecker, false /*includeCurrentProfiles*/, userId,
- false /*sendDelete*/, reason, listenerName, false /* wasPosted */);
+ false /*sendDelete*/, reason, listenerName, false /* wasPosted */,
+ cancellationElapsedTimeMs);
mSnoozeHelper.cancel(userId, pkg);
}
}
@@ -9035,7 +9058,8 @@ public class NotificationManagerService extends SystemService {
private void cancelAllNotificationsByListLocked(ArrayList<NotificationRecord> notificationList,
int callingUid, int callingPid, String pkg, boolean nullPkgIndicatesUserSwitch,
String channelId, FlagChecker flagChecker, boolean includeCurrentProfiles, int userId,
- boolean sendDelete, int reason, String listenerName, boolean wasPosted) {
+ boolean sendDelete, int reason, String listenerName, boolean wasPosted,
+ @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
Set<String> childNotifications = null;
for (int i = notificationList.size() - 1; i >= 0; --i) {
NotificationRecord r = notificationList.get(i);
@@ -9069,7 +9093,8 @@ public class NotificationManagerService extends SystemService {
notificationList.remove(i);
mNotificationsByKey.remove(r.getKey());
r.recordDismissalSentiment(NotificationStats.DISMISS_SENTIMENT_NEUTRAL);
- cancelNotificationLocked(r, sendDelete, reason, wasPosted, listenerName);
+ cancelNotificationLocked(r, sendDelete, reason, wasPosted, listenerName,
+ cancellationElapsedTimeMs);
}
if (childNotifications != null) {
final int M = notificationList.size();
@@ -9081,7 +9106,8 @@ public class NotificationManagerService extends SystemService {
notificationList.remove(i);
mNotificationsByKey.remove(r.getKey());
r.recordDismissalSentiment(NotificationStats.DISMISS_SENTIMENT_NEUTRAL);
- cancelNotificationLocked(r, sendDelete, reason, wasPosted, listenerName);
+ cancelNotificationLocked(r, sendDelete, reason, wasPosted, listenerName,
+ cancellationElapsedTimeMs);
}
}
updateLightsLocked();
@@ -9127,6 +9153,7 @@ public class NotificationManagerService extends SystemService {
@GuardedBy("mNotificationLock")
void cancelAllLocked(int callingUid, int callingPid, int userId, int reason,
ManagedServiceInfo listener, boolean includeCurrentProfiles) {
+ final long cancellationElapsedTimeMs = SystemClock.elapsedRealtime();
mHandler.post(new Runnable() {
@Override
public void run() {
@@ -9151,11 +9178,11 @@ public class NotificationManagerService extends SystemService {
cancelAllNotificationsByListLocked(mNotificationList, callingUid, callingPid,
null, false /*nullPkgIndicatesUserSwitch*/, null, flagChecker,
includeCurrentProfiles, userId, true /*sendDelete*/, reason,
- listenerName, true);
+ listenerName, true, cancellationElapsedTimeMs);
cancelAllNotificationsByListLocked(mEnqueuedNotifications, callingUid,
callingPid, null, false /*nullPkgIndicatesUserSwitch*/, null,
flagChecker, includeCurrentProfiles, userId, true /*sendDelete*/,
- reason, listenerName, false);
+ reason, listenerName, false, cancellationElapsedTimeMs);
mSnoozeHelper.cancel(userId, includeCurrentProfiles);
}
}
@@ -9165,7 +9192,8 @@ public class NotificationManagerService extends SystemService {
// Warning: The caller is responsible for invoking updateLightsLocked().
@GuardedBy("mNotificationLock")
private void cancelGroupChildrenLocked(NotificationRecord r, int callingUid, int callingPid,
- String listenerName, boolean sendDelete, FlagChecker flagChecker, int reason) {
+ String listenerName, boolean sendDelete, FlagChecker flagChecker, int reason,
+ @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
Notification n = r.getNotification();
if (!n.isGroupSummary()) {
return;
@@ -9179,16 +9207,16 @@ public class NotificationManagerService extends SystemService {
}
cancelGroupChildrenByListLocked(mNotificationList, r, callingUid, callingPid, listenerName,
- sendDelete, true, flagChecker, reason);
+ sendDelete, true, flagChecker, reason, cancellationElapsedTimeMs);
cancelGroupChildrenByListLocked(mEnqueuedNotifications, r, callingUid, callingPid,
- listenerName, sendDelete, false, flagChecker, reason);
+ listenerName, sendDelete, false, flagChecker, reason, cancellationElapsedTimeMs);
}
@GuardedBy("mNotificationLock")
private void cancelGroupChildrenByListLocked(ArrayList<NotificationRecord> notificationList,
NotificationRecord parentNotification, int callingUid, int callingPid,
String listenerName, boolean sendDelete, boolean wasPosted, FlagChecker flagChecker,
- int reason) {
+ int reason, @ElapsedRealtimeLong long cancellationElapsedTimeMs) {
final String pkg = parentNotification.getSbn().getPackageName();
final int userId = parentNotification.getUserId();
final int childReason = REASON_GROUP_SUMMARY_CANCELED;
@@ -9204,7 +9232,8 @@ public class NotificationManagerService extends SystemService {
childSbn.getTag(), userId, 0, 0, childReason, listenerName);
notificationList.remove(i);
mNotificationsByKey.remove(childR.getKey());
- cancelNotificationLocked(childR, sendDelete, childReason, wasPosted, listenerName);
+ cancelNotificationLocked(childR, sendDelete, childReason, wasPosted, listenerName,
+ cancellationElapsedTimeMs);
}
}
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
index 9f92294135c0..9ecb14a769a4 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -1335,7 +1335,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mBinderService.applyEnqueuedAdjustmentFromAssistant(null, adjustment);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -1356,7 +1356,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
when(mPreferencesHelper.getImportance(anyString(), anyInt())).thenReturn(IMPORTANCE_NONE);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -3918,7 +3918,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
NotificationRecord r = generateNotificationRecord(mTestNotificationChannel, 0, null, false);
mService.addEnqueuedNotification(r);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -3935,7 +3935,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
r = generateNotificationRecord(mTestNotificationChannel, 0, null, false);
mService.addEnqueuedNotification(r);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -3951,7 +3951,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addEnqueuedNotification(r);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -3964,12 +3964,12 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
r.setCriticality(CriticalNotificationExtractor.CRITICAL_LOW);
mService.addEnqueuedNotification(r);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
r = generateNotificationRecord(mTestNotificationChannel, 1, null, false);
r.setCriticality(CriticalNotificationExtractor.CRITICAL);
- runnable = mService.new PostNotificationRunnable(r.getKey());
+ runnable = mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
mService.addEnqueuedNotification(r);
runnable.run();
@@ -4412,7 +4412,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addEnqueuedNotification(original);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(original.getKey());
+ mService.new PostNotificationRunnable(original.getKey(),
+ SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -4433,7 +4434,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
mService.addEnqueuedNotification(update);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(update.getKey());
+ mService.new PostNotificationRunnable(update.getKey(),
+ SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -6475,7 +6477,8 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
assertNull(update.getSbn().getNotification().getSmallIcon());
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(update.getKey());
+ mService.new PostNotificationRunnable(update.getKey(),
+ SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/NotificationPermissionMigrationTest.java b/services/tests/uiservicestests/src/com/android/server/notification/NotificationPermissionMigrationTest.java
index da5496da1bfa..fec5405c3390 100755
--- a/services/tests/uiservicestests/src/com/android/server/notification/NotificationPermissionMigrationTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/NotificationPermissionMigrationTest.java
@@ -91,6 +91,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Process;
import android.os.RemoteException;
+import android.os.SystemClock;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
@@ -656,7 +657,7 @@ public class NotificationPermissionMigrationTest extends UiServiceTestCase {
when(mPermissionHelper.hasPermission(anyInt())).thenReturn(false);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -789,7 +790,7 @@ public class NotificationPermissionMigrationTest extends UiServiceTestCase {
mService.addEnqueuedNotification(r);
NotificationManagerService.PostNotificationRunnable runnable =
- mService.new PostNotificationRunnable(r.getKey());
+ mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -805,7 +806,7 @@ public class NotificationPermissionMigrationTest extends UiServiceTestCase {
r = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
mService.addEnqueuedNotification(r);
- runnable = mService.new PostNotificationRunnable(r.getKey());
+ runnable = mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();
@@ -821,7 +822,7 @@ public class NotificationPermissionMigrationTest extends UiServiceTestCase {
r = new NotificationRecord(mContext, sbn, mTestNotificationChannel);
mService.addEnqueuedNotification(r);
- runnable = mService.new PostNotificationRunnable(r.getKey());
+ runnable = mService.new PostNotificationRunnable(r.getKey(), SystemClock.elapsedRealtime());
runnable.run();
waitForIdle();