diff options
| author | 2019-10-02 18:33:49 -0400 | |
|---|---|---|
| committer | 2019-10-02 18:33:49 -0400 | |
| commit | 7d44291900e38e7bb3c849df95dbdd7d555f0d35 (patch) | |
| tree | e65b8b6ad952692bb701514d0d6d2648829eaec3 | |
| parent | 38bbedaebc4723f2f0d7ce8ce8d0f2a488292c9f (diff) | |
Fix FGS lifetime extender overzealousness
ForegroundServiceLifetimeExtender was always posting MIN_FGS_TIME_MS in
the future to release a notification if it was canceled at any time
before the minimum. Meaning that if a foreground service was started and
then stopped 4.9 seconds later, it woudn't be released until 9.9 seconds
due to always posting 5000ms.
This change takes into consideration the time that a notification has
already been showing.
Fixes: 141688100
Test: atest ForegroundServiceNotificationListenerTest
Change-Id: Ie0403ddb37bb85a602a5ac6ffedcaf4bab2efcbc
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender.java | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender.java b/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender.java index 0e079e36a175..5c561e5bf6f2 100644 --- a/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender.java +++ b/packages/SystemUI/src/com/android/systemui/ForegroundServiceLifetimeExtender.java @@ -83,7 +83,9 @@ public class ForegroundServiceLifetimeExtender implements NotificationLifetimeEx } } }; - mHandler.postDelayed(r, MIN_FGS_TIME_MS); + long delayAmt = MIN_FGS_TIME_MS + - (System.currentTimeMillis() - entry.notification.getPostTime()); + mHandler.postDelayed(r, delayAmt); } } |