Merge "Change TaskInfo topActivityInSizeCompat to look at visibility" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
5fe3c3e64a
@@ -3453,8 +3453,10 @@ class Task extends TaskFragment {
|
|||||||
|
|
||||||
final boolean isTopActivityResumed = top != null
|
final boolean isTopActivityResumed = top != null
|
||||||
&& top.getOrganizedTask() == this && top.isState(RESUMED);
|
&& top.getOrganizedTask() == this && top.isState(RESUMED);
|
||||||
// Whether the direct top activity is in size compat mode on foreground.
|
final boolean isTopActivityVisible = top != null
|
||||||
info.topActivityInSizeCompat = isTopActivityResumed && top.inSizeCompatMode();
|
&& top.getOrganizedTask() == this && top.isVisible();
|
||||||
|
// Whether the direct top activity is in size compat mode
|
||||||
|
info.topActivityInSizeCompat = isTopActivityVisible && top.inSizeCompatMode();
|
||||||
if (info.topActivityInSizeCompat
|
if (info.topActivityInSizeCompat
|
||||||
&& mWmService.mLetterboxConfiguration.isTranslucentLetterboxingEnabled()) {
|
&& mWmService.mLetterboxConfiguration.isTranslucentLetterboxingEnabled()) {
|
||||||
// We hide the restart button in case of transparent activities.
|
// We hide the restart button in case of transparent activities.
|
||||||
|
|||||||
@@ -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__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_LETTERBOXED;
|
||||||
import static com.android.internal.util.FrameworkStatsLog.APP_COMPAT_STATE_CHANGED__STATE__NOT_VISIBLE;
|
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.RESTARTING_PROCESS;
|
||||||
import static com.android.server.wm.ActivityRecord.State.RESUMED;
|
import static com.android.server.wm.ActivityRecord.State.RESUMED;
|
||||||
import static com.android.server.wm.ActivityRecord.State.STOPPED;
|
import static com.android.server.wm.ActivityRecord.State.STOPPED;
|
||||||
@@ -3884,6 +3885,24 @@ public class SizeCompatTests extends WindowTestsBase {
|
|||||||
assertTrue(mActivity.inSizeCompatMode());
|
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
|
* 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
|
* result, which is that aspect ratio is respected on app bounds. The three paths are
|
||||||
|
|||||||
@@ -1485,9 +1485,9 @@ public class WindowOrganizerTests extends WindowTestsBase {
|
|||||||
assertEquals(rootTask.mTaskId, info.taskId);
|
assertEquals(rootTask.mTaskId, info.taskId);
|
||||||
assertTrue(info.topActivityInSizeCompat);
|
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);
|
clearInvocations(organizer);
|
||||||
doReturn(false).when(activity).isState(RESUMED);
|
doReturn(false).when(activity).isVisible();
|
||||||
rootTask.onSizeCompatActivityChanged();
|
rootTask.onSizeCompatActivityChanged();
|
||||||
mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
|
mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
|
||||||
verify(organizer).onTaskInfoChanged(infoCaptor.capture());
|
verify(organizer).onTaskInfoChanged(infoCaptor.capture());
|
||||||
@@ -1497,7 +1497,7 @@ public class WindowOrganizerTests extends WindowTestsBase {
|
|||||||
|
|
||||||
// Ensure task info show non size compat top activity as not in size compat.
|
// Ensure task info show non size compat top activity as not in size compat.
|
||||||
clearInvocations(organizer);
|
clearInvocations(organizer);
|
||||||
doReturn(true).when(activity).isState(RESUMED);
|
doReturn(true).when(activity).isVisible();
|
||||||
doReturn(false).when(activity).inSizeCompatMode();
|
doReturn(false).when(activity).inSizeCompatMode();
|
||||||
rootTask.onSizeCompatActivityChanged();
|
rootTask.onSizeCompatActivityChanged();
|
||||||
mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
|
mWm.mAtmService.mTaskOrganizerController.dispatchPendingEvents();
|
||||||
|
|||||||
Reference in New Issue
Block a user