Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ee09ec9 authored by Evan Laird's avatar Evan Laird Committed by Automerger Merge Worker
Browse files

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

Change-Id: Iac0bfd245d4e613bba13e3a12323f77796b87913
parents 3f6250b1 a7e99b00
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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;
+12 −0
Original line number Diff line number Diff line
@@ -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));
    }
}