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

Commit 04ebf9a0 authored by Vali Calinescu's avatar Vali Calinescu Committed by Automerger Merge Worker
Browse files

Merge "Change TaskInfo topActivityInSizeCompat to look at visibility" into...

Merge "Change TaskInfo topActivityInSizeCompat to look at visibility" into tm-qpr-dev am: 5fe3c3e6 am: 2c157a05 am: 9d68c78a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21931180



Change-Id: I54a7a42f77bca0cbaa9b05037e13e36e79deabdd
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents dbfa937f 9d68c78a
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -3398,8 +3398,10 @@ class Task extends TaskFragment {

        final boolean isTopActivityResumed = top != null
                && top.getOrganizedTask() == this && top.isState(RESUMED);
        // Whether the direct top activity is in size compat mode on foreground.
        info.topActivityInSizeCompat = isTopActivityResumed && top.inSizeCompatMode();
        final boolean isTopActivityVisible = top != null
                && top.getOrganizedTask() == this && top.isVisible();
        // Whether the direct top activity is in size compat mode
        info.topActivityInSizeCompat = isTopActivityVisible && top.inSizeCompatMode();
        if (info.topActivityInSizeCompat
                && mWmService.mLetterboxConfiguration.isTranslucentLetterboxingEnabled()) {
            // We hide the restart button in case of transparent activities.
+19 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANG
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__LETTERBOXED_FOR_SIZE_COMPAT_MODE;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__NOT_LETTERBOXED;
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__NOT_VISIBLE;
import static com.android.server.wm.ActivityRecord.State.PAUSED;
import static com.android.server.wm.ActivityRecord.State.RESTARTING_PROCESS;
import static com.android.server.wm.ActivityRecord.State.RESUMED;
import static com.android.server.wm.ActivityRecord.State.STOPPED;
@@ -3918,6 +3919,24 @@ public class SizeCompatTests extends WindowTestsBase {
        assertTrue(mActivity.inSizeCompatMode());
    }

    @Test
    public void testTopActivityInSizeCompatMode_pausedAndInSizeCompatMode_returnsTrue() {
        setUpDisplaySizeWithApp(1000, 2500);
        mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */);

        spyOn(mActivity);
        doReturn(mTask).when(mActivity).getOrganizedTask();
        prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT);

        rotateDisplay(mActivity.mDisplayContent, ROTATION_90);
        mActivity.setState(PAUSED, "test");

        assertTrue(mActivity.inSizeCompatMode());
        assertEquals(mActivity.getState(), PAUSED);
        assertTrue(mActivity.isVisible());
        assertTrue(mTask.getTaskInfo().topActivityInSizeCompat);
    }

    /**
     * Tests that all three paths in which aspect ratio logic can be applied yield the same
     * result, which is that aspect ratio is respected on app bounds. The three paths are
+3 −3
Original line number Diff line number Diff line
@@ -1486,9 +1486,9 @@ public class WindowOrganizerTests extends WindowTestsBase {
        assertEquals(rootTask.mTaskId, info.taskId);
        assertTrue(info.topActivityInSizeCompat);

        // Ensure task info show top activity that is not in foreground as not in size compat.
        // Ensure task info show top activity that is not visible as not in size compat.
        clearInvocations(organizer);
        doReturn(false).when(activity).isState(RESUMED);
        doReturn(false).when(activity).isVisible();
        rootTask.onSizeCompatActivityChanged();
        mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
        verify(organizer).onTaskInfoChanged(infoCaptor.capture());
@@ -1498,7 +1498,7 @@ public class WindowOrganizerTests extends WindowTestsBase {

        // Ensure task info show non size compat top activity as not in size compat.
        clearInvocations(organizer);
        doReturn(true).when(activity).isState(RESUMED);
        doReturn(true).when(activity).isVisible();
        doReturn(false).when(activity).inSizeCompatMode();
        rootTask.onSizeCompatActivityChanged();
        mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();