summaryrefslogtreecommitdiff
path: root/tests/Codegen/src/com/android/codegentest/SampleWithNestedDataClasses.java
diff options
context:
space:
mode:
authorEvan Laird <evanlaird@google.com>2019-10-04 14:18:59 -0400
committerEvan Laird <evanlaird@google.com>2019-10-04 16:54:50 -0400
commit3b8c4743f630dcd370bfc5dc9683b551983fbe28 (patch)
tree49aa032f1de49f0955df8f1299773ad69e0cc023 /tests/Codegen/src/com/android/codegentest/SampleWithNestedDataClasses.java
parent86ddd9eb6a40056df20e8168c4d6c96af797d1ec (diff)
Force FGS notifications to show for a minimum time
It's possible for a service to do a start/stop foreground and cause a couple of things to happen: NotificationManagerService will enqueue a EnqueueNotificationRunnable, post a PostNotificationRunnable (for the startForeground), and then also enqueue a CancelNotificationRunnable. There is some racy behavior here in that the cancel runnable can get triggered in between enqueue and post runnables. If the cancel happens first, then NotificationListenerServices will never get the message. This behavior is technically allowed, however for foreground services we want to ensure that there is a minmum amount of time that notification listeners are aware of the foreground service so that (for instance) the FGS notification can be shown. This CL does two things to mitigate this problem: 1. Introduce checking in the CancelNotificationRunnable such that it will not cancel until after PostNotificationRunnable has finished executing. 2. Introduce a NotificationLifetimeExtender method that will allow a lifetime extender to manage the lifetime of a notification that has been enqueued but not inflated yet. Bug: 119041698 Test: atest NotificationManagerServiceTest Test: atest ForegroundServiceLifetimeExtenderTest Change-Id: I0680034ed9315aa2c05282524d48faaed066ebd0 Merged-In: I0680034ed9315aa2c05282524d48faaed066ebd0
Diffstat (limited to 'tests/Codegen/src/com/android/codegentest/SampleWithNestedDataClasses.java')
0 files changed, 0 insertions, 0 deletions