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

Commit 57e47e48 authored by Ats Jenk's avatar Ats Jenk Committed by Android (Google) Code Review
Browse files

Merge "Have BubbleTaskStackListener ignore tasks entering split" into main

parents 055fa63f 17c1aa57
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -488,6 +488,7 @@ class BubbleControllerBubbleBarTest {
            BubbleResizabilityChecker(),
            HomeIntentProvider(context),
            FakeBubbleAppInfoProvider(),
            { Optional.empty() },
        )
    }

+1 −0
Original line number Diff line number Diff line
@@ -483,6 +483,7 @@ class BubbleControllerTest(flags: FlagsParameterization) {
                resizeChecker,
                HomeIntentProvider(context),
                FakeBubbleAppInfoProvider(),
                { Optional.empty() },
            )
        bubbleController.setInflateSynchronously(true)
        bubbleController.onInit()
+38 −0
Original line number Diff line number Diff line
@@ -37,16 +37,20 @@ import com.android.wm.shell.ShellTaskOrganizer
import com.android.wm.shell.bubbles.util.verifyExitBubbleTransaction
import com.android.wm.shell.taskview.TaskView
import com.android.wm.shell.taskview.TaskViewTaskController
import com.android.wm.shell.splitscreen.SplitScreenController
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.kotlin.argumentCaptor
import org.mockito.kotlin.clearInvocations
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.stub
import org.mockito.kotlin.verify
import org.mockito.kotlin.verifyNoInteractions
import org.mockito.kotlin.whenever
import java.util.Optional

/**
 * Unit tests for [BubbleTaskStackListener].
@@ -73,9 +77,11 @@ class BubbleTaskStackListenerTest {
    }
    private val bubbleController = mock<BubbleController>()
    private val bubbleData = mock<BubbleData>()
    private val splitScreenController = mock<SplitScreenController>()
    private val bubbleTaskStackListener = BubbleTaskStackListener(
        bubbleController,
        bubbleData,
        { Optional.of(splitScreenController) },
    )
    private val bubbleTaskId = 123
    private val bubbleTaskToken = WindowContainerToken(mock<IWindowContainerToken> {
@@ -141,4 +147,36 @@ class BubbleTaskStackListenerTest {
        verify(taskOrganizer).setInterceptBackPressedOnTaskRoot(task.token, false /* intercept */)
        verify(taskViewTaskController).notifyTaskRemovalStarted(task)
    }

    @Test
    @EnableFlags(
        FLAG_ENABLE_CREATE_ANY_BUBBLE,
        FLAG_ENABLE_BUBBLE_ANYTHING,
        FLAG_EXCLUDE_TASK_FROM_RECENTS,
        FLAG_DISALLOW_BUBBLE_TO_ENTER_PIP,
    )
    fun onActivityRestartAttempt_inStackAppBubbleToSplit_doesNothing() {
        task.parentTaskId = 456
        bubbleData.stub {
            on { getBubbleInStackWithTaskId(bubbleTaskId) } doReturn bubble
        }

        splitScreenController.stub {
            on { isTaskRootOrStageRoot(456) } doReturn true
        }

        val taskViewTaskController = bubble.taskView.controller
        val taskOrganizer = taskViewTaskController.taskOrganizer
        clearInvocations(taskViewTaskController)

        bubbleTaskStackListener.onActivityRestartAttempt(
            task,
            homeTaskVisible = false,
            clearedTask = false,
            wasVisible = false,
        )

        verifyNoInteractions(taskOrganizer)
        verifyNoInteractions(taskViewTaskController)
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ import com.android.wm.shell.taskview.TaskViewTransitions
import com.android.wm.shell.transition.Transitions
import com.google.common.truth.Truth.assertThat
import com.google.common.util.concurrent.MoreExecutors.directExecutor
import java.util.Optional
import org.junit.Assert
import org.junit.Before
import org.junit.Test
@@ -167,6 +168,7 @@ class BubbleViewInfoTaskTest {
                BubbleResizabilityChecker(),
                HomeIntentProvider(context),
                appInfoProvider,
                { Optional.empty() },
            )

        // TODO: (b/371829099) - when optional overflow is no longer flagged we can enable this
+2 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.wm.shell.sysui.ShellInit
import com.android.wm.shell.taskview.TaskViewTransitions
import com.android.wm.shell.transition.Transitions
import com.google.common.truth.Truth.assertThat
import java.util.Optional
import org.junit.After
import org.junit.Before
import org.junit.Rule
@@ -247,6 +248,7 @@ class BubbleBarLayerViewTest {
            BubbleResizabilityChecker(),
            HomeIntentProvider(context),
            FakeBubbleAppInfoProvider(),
            { Optional.empty() },
        )
    }

Loading