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
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user