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

Commit 83f17189 authored by Caitlin Cassidy's avatar Caitlin Cassidy
Browse files

[Ongoing Call] Remove the call chip when #onEntryCleanUp is called.

See bug comment #9 for an in-depth explanation.

Test: New unit tests.
Test: I created a test app that sends an ongoing call notification
then removes it 200ms later, and I confirmed that the bug is triggered
without this CL, and is fixed with this CL.
Bug: 199600334

Change-Id: I0f681ccfe55597490bee0d4b190f9fb2c38e28f2
(cherry picked from commit cd755525)
Merged-In: I0f681ccfe55597490bee0d4b190f9fb2c38e28f2
parent 3a8df63e
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -104,7 +104,16 @@ class OngoingCallController @Inject constructor(
            }
        }

        // Fix for b/199600334
        override fun onEntryCleanUp(entry: NotificationEntry) {
            removeChipIfNeeded(entry)
        }

        override fun onEntryRemoved(entry: NotificationEntry, reason: Int) {
            removeChipIfNeeded(entry)
        }

        private fun removeChipIfNeeded(entry: NotificationEntry) {
            if (entry.sbn.key == callNotificationInfo?.key) {
                removeChip()
            }
+12 −0
Original line number Diff line number Diff line
@@ -221,6 +221,18 @@ class OngoingCallControllerTest : SysuiTestCase() {
        verify(mockOngoingCallListener).onOngoingCallStateChanged(anyBoolean())
    }

    /** Regression test for b/201097913. */
    @Test
    fun onEntryCleanUp_callNotifAddedThenRemoved_listenerNotified() {
        val ongoingCallNotifEntry = createOngoingCallNotifEntry()
        notifCollectionListener.onEntryAdded(ongoingCallNotifEntry)
        reset(mockOngoingCallListener)

        notifCollectionListener.onEntryCleanUp(ongoingCallNotifEntry)

        verify(mockOngoingCallListener).onOngoingCallStateChanged(anyBoolean())
    }

    /** Regression test for b/188491504. */
    @Test
    fun onEntryRemoved_removedNotifHasSameKeyAsAddedNotif_listenerNotified() {