summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Evan Laird <evanlaird@google.com> 2019-10-02 18:33:49 -0400
committer Evan Laird <evanlaird@google.com> 2019-10-02 18:33:49 -0400
commit7d44291900e38e7bb3c849df95dbdd7d555f0d35 (patch)
treee65b8b6ad952692bb701514d0d6d2648829eaec3
parent38bbedaebc4723f2f0d7ce8ce8d0f2a488292c9f (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.java4
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);
}
}