Merge "Allow interrupting notifications to bypass lifetime extension" into rvc-dev am: a7e99b00c0
Change-Id: Iac0bfd245d4e613bba13e3a12323f77796b87913
This commit is contained in:
@@ -66,6 +66,12 @@ public class ForegroundServiceLifetimeExtender implements NotificationLifetimeEx
|
|||||||
return false;
|
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());
|
boolean hasInteracted = mInteractionTracker.hasUserInteractedWith(entry.getKey());
|
||||||
long aliveTime = mSystemClock.uptimeMillis() - entry.getCreationTime();
|
long aliveTime = mSystemClock.uptimeMillis() - entry.getCreationTime();
|
||||||
return aliveTime < MIN_FGS_TIME_MS && !hasInteracted;
|
return aliveTime < MIN_FGS_TIME_MS && !hasInteracted;
|
||||||
|
|||||||
@@ -95,4 +95,16 @@ public class ForegroundServiceNotificationListenerTest extends SysuiTestCase {
|
|||||||
mClock.advanceTime(MIN_FGS_TIME_MS + 1);
|
mClock.advanceTime(MIN_FGS_TIME_MS + 1);
|
||||||
assertFalse(mExtender.shouldExtendLifetime(mEntry));
|
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