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

Commit 6975150c authored by Luca Zuccarini's avatar Luca Zuccarini
Browse files

Merge InCall and InCallWithVisibleApp.

Bug: 395989259
Flag: EXEMPT simple refactor
Test: atest CallChipViewModelTest OngoingCallControllerTest OngoingCallInteractorTest PromotedNotificationsInteractorTest
Change-Id: I2f7a60e7c000ae2e7f1c048237e607a6a5c6fa89
parent 7f125e22
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.animation.Expandable
import com.android.systemui.common.shared.model.ContentDescription.Companion.loadContentDescription
import com.android.systemui.common.shared.model.Icon
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
@@ -47,7 +46,6 @@ import com.android.systemui.testKosmos
import com.android.systemui.util.time.fakeSystemClock
import com.google.common.truth.Truth.assertThat
import kotlin.test.Test
import kotlinx.coroutines.test.runTest
import org.junit.runner.RunWith
import org.mockito.kotlin.any
import org.mockito.kotlin.mock
+17 −8
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ class OngoingCallInteractorTest : SysuiTestCase() {
            assertThat(model.intent).isSameInstanceAs(testIntent)
            assertThat(model.notificationKey).isEqualTo(key)
            assertThat(model.promotedContent).isSameInstanceAs(testPromotedContent)
            assertThat(model.isAppVisible).isFalse()
        }

    @Test
@@ -114,15 +115,16 @@ class OngoingCallInteractorTest : SysuiTestCase() {
                promotedContent = testPromotedContent,
            )

            // Verify model is InCallWithVisibleApp and has the correct icon, intent, and promoted
            // content.
            assertThat(latest).isInstanceOf(OngoingCallModel.InCallWithVisibleApp::class.java)
            val model = latest as OngoingCallModel.InCallWithVisibleApp
            // Verify model is InCall with visible app and has the correct icon, intent, and
            // promoted content.
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            val model = latest as OngoingCallModel.InCall
            assertThat(model.startTimeMs).isEqualTo(startTimeMs)
            assertThat(model.notificationIconView).isSameInstanceAs(testIconView)
            assertThat(model.intent).isSameInstanceAs(testIntent)
            assertThat(model.notificationKey).isEqualTo(key)
            assertThat(model.promotedContent).isSameInstanceAs(testPromotedContent)
            assertThat(model.isAppVisible).isTrue()
        }

    @Test
@@ -144,7 +146,8 @@ class OngoingCallInteractorTest : SysuiTestCase() {

            addOngoingCallState(uid = UID)

            assertThat(latest).isInstanceOf(OngoingCallModel.InCallWithVisibleApp::class.java)
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((latest as OngoingCallModel.InCall).isAppVisible).isTrue()
        }

    @Test
@@ -156,6 +159,7 @@ class OngoingCallInteractorTest : SysuiTestCase() {
            addOngoingCallState(uid = UID)

            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((latest as OngoingCallModel.InCall).isAppVisible).isFalse()
        }

    @Test
@@ -167,14 +171,17 @@ class OngoingCallInteractorTest : SysuiTestCase() {
            kosmos.activityManagerRepository.fake.startingIsAppVisibleValue = false
            addOngoingCallState(uid = UID)
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((latest as OngoingCallModel.InCall).isAppVisible).isFalse()

            // App becomes visible
            kosmos.activityManagerRepository.fake.setIsAppVisible(UID, true)
            assertThat(latest).isInstanceOf(OngoingCallModel.InCallWithVisibleApp::class.java)
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((latest as OngoingCallModel.InCall).isAppVisible).isTrue()

            // App becomes invisible again
            kosmos.activityManagerRepository.fake.setIsAppVisible(UID, false)
            assertThat(latest).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((latest as OngoingCallModel.InCall).isAppVisible).isFalse()
        }

    @Test
@@ -243,13 +250,14 @@ class OngoingCallInteractorTest : SysuiTestCase() {
            addOngoingCallState(uid = UID)

            assertThat(ongoingCallState).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((ongoingCallState as OngoingCallModel.InCall).isAppVisible).isFalse()
            assertThat(requiresStatusBarVisibleInRepository).isTrue()
            assertThat(requiresStatusBarVisibleInWindowController).isTrue()

            kosmos.activityManagerRepository.fake.setIsAppVisible(UID, true)

            assertThat(ongoingCallState)
                .isInstanceOf(OngoingCallModel.InCallWithVisibleApp::class.java)
            assertThat(ongoingCallState).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((ongoingCallState as OngoingCallModel.InCall).isAppVisible).isTrue()
            assertThat(requiresStatusBarVisibleInRepository).isFalse()
            assertThat(requiresStatusBarVisibleInWindowController).isFalse()
        }
@@ -265,6 +273,7 @@ class OngoingCallInteractorTest : SysuiTestCase() {
            addOngoingCallState()

            assertThat(ongoingCallState).isInstanceOf(OngoingCallModel.InCall::class.java)
            assertThat((ongoingCallState as OngoingCallModel.InCall).isAppVisible).isFalse()
            verify(kosmos.swipeStatusBarAwayGestureHandler, never())
                .addOnGestureDetectedCallback(any(), any())
        }
+7 −3
Original line number Diff line number Diff line
@@ -64,9 +64,13 @@ constructor(
        interactor.ongoingCallState
            .map { state ->
                when (state) {
                    is OngoingCallModel.NoCall,
                    is OngoingCallModel.InCallWithVisibleApp -> OngoingActivityChipModel.Inactive()
                    is OngoingCallModel.InCall -> prepareChip(state, systemClock)
                    is OngoingCallModel.NoCall -> OngoingActivityChipModel.Inactive()
                    is OngoingCallModel.InCall ->
                        if (state.isAppVisible) {
                            OngoingActivityChipModel.Inactive()
                        } else {
                            prepareChip(state, systemClock)
                        }
                }
            }
            .stateIn(scope, SharingStarted.WhileSubscribed(), OngoingActivityChipModel.Inactive())
+2 −1
Original line number Diff line number Diff line
@@ -267,7 +267,8 @@ constructor(
                        if (StatusBarChipsModernization.isEnabled) {
                            ongoingProcessRequiresStatusBarVisible
                        } else {
                            ongoingCallStateLegacy is OngoingCallModel.InCall
                            ongoingCallStateLegacy is OngoingCallModel.InCall &&
                                !ongoingCallStateLegacy.isAppVisible
                        }
                    val statusBarMode =
                        toBarMode(
+0 −3
Original line number Diff line number Diff line
@@ -70,9 +70,6 @@ constructor(
    private fun OngoingCallModel.getNotifData(): NotifAndPromotedContent? =
        when (this) {
            is OngoingCallModel.InCall -> NotifAndPromotedContent(notificationKey, promotedContent)
            is OngoingCallModel.InCallWithVisibleApp ->
                // TODO(b/395989259): support InCallWithVisibleApp when it has notif data
                null
            is OngoingCallModel.NoCall -> null
        }

Loading