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

Commit ce201624 authored by Hongwei Wang's avatar Hongwei Wang Committed by Android (Google) Code Review
Browse files

Merge "Fix NPE in PipTaskListener" into main

parents 9d4cbbde 804c0327
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -132,8 +132,9 @@ public class PipTaskListener implements ShellTaskOrganizer.TaskListener,
                "onTaskInfoChanged: %s, state=%s oldParams=%s newParams=%s",
                taskInfo.topActivity, mPipTransitionState, mPictureInPictureParams, params);
        setPictureInPictureParams(params);
        // Note: params is nullable while mPictureInPictureParams is never null
        float newAspectRatio = mPictureInPictureParams.getAspectRatioFloat();
        if (params.hasSetAspectRatio()
        if (mPictureInPictureParams.hasSetAspectRatio()
                && mPipBoundsAlgorithm.isValidPictureInPictureAspectRatio(newAspectRatio)
                && PipUtils.aspectRatioChanged(newAspectRatio, mPipBoundsState.getAspectRatio())) {
            mPipTransitionState.setOnIdlePipTransitionStateRunnable(() -> {
+19 −0
Original line number Diff line number Diff line
@@ -164,6 +164,25 @@ public class PipTaskListenerTest {
        verifyZeroInteractions(mMockPipParamsChangedCallback);
    }

    @Test
    public void onTaskInfoChanged_withNullPipParams_doNothing() {
        mPipTaskListener = new PipTaskListener(mMockContext, mMockShellTaskOrganizer,
                mMockPipTransitionState, mMockPipScheduler, mMockPipBoundsState,
                mMockPipBoundsAlgorithm, mMockShellExecutor);
        mPipTaskListener.addParamsChangedListener(mMockPipParamsChangedCallback);
        Rational aspectRatio = new Rational(4, 3);
        when(mMockPipBoundsState.getAspectRatio()).thenReturn(aspectRatio.toFloat());
        String action1 = "action1";
        mPipTaskListener.onTaskInfoChanged(getTaskInfo(aspectRatio, action1));

        clearInvocations(mMockPipParamsChangedCallback);
        mPipTaskListener.onTaskInfoChanged(new ActivityManager.RunningTaskInfo());

        verifyZeroInteractions(mMockPipParamsChangedCallback);
        verify(mMockPipTransitionState, times(0))
                .setOnIdlePipTransitionStateRunnable(any(Runnable.class));
    }

    @Test
    public void onTaskInfoChanged_withActionsChanged_callbackActionsChanged() {
        mPipTaskListener = new PipTaskListener(mMockContext, mMockShellTaskOrganizer,