Merge "Allow interrupting notifications to bypass lifetime extension" into rvc-dev am: a7e99b00c0

Change-Id: Iec876b0183670ff3644b47af9d3c28e39e6f0a24
This commit is contained in:
Evan Laird
2020-05-29 15:07:22 +00:00
committed by Automerger Merge Worker
2 changed files with 18 additions and 0 deletions

View File

@@ -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;

View File

@@ -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));
}
}