Merge "Allow interrupting notifications to bypass lifetime extension" into rvc-dev am: a7e99b00c0
Change-Id: Iec876b0183670ff3644b47af9d3c28e39e6f0a24
This commit is contained in:
@@ -66,6 +66,12 @@ public class ForegroundServiceLifetimeExtender implements NotificationLifetimeEx
|
||||
return false;
|
||||
}
|
||||
|
||||
// Entry has triggered a HUN or some other interruption, therefore it has been seen and the
|
||||
// interrupter might be retaining it anyway.
|
||||
if (entry.hasInterrupted()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean hasInteracted = mInteractionTracker.hasUserInteractedWith(entry.getKey());
|
||||
long aliveTime = mSystemClock.uptimeMillis() - entry.getCreationTime();
|
||||
return aliveTime < MIN_FGS_TIME_MS && !hasInteracted;
|
||||
|
||||
@@ -95,4 +95,16 @@ public class ForegroundServiceNotificationListenerTest extends SysuiTestCase {
|
||||
mClock.advanceTime(MIN_FGS_TIME_MS + 1);
|
||||
assertFalse(mExtender.shouldExtendLifetime(mEntry));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testShouldExtendLifetime_shouldNot_interruped() {
|
||||
// GIVEN a notification that would trigger lifetime extension
|
||||
mNotif.flags |= Notification.FLAG_FOREGROUND_SERVICE;
|
||||
|
||||
// GIVEN the notification has alerted
|
||||
mEntry.setInterruption();
|
||||
|
||||
// THEN the notification does not need to have its lifetime extended by this extender
|
||||
assertFalse(mExtender.shouldExtendLifetime(mEntry));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user