Loading services/core/java/com/android/server/wm/TaskSnapshotController.java +3 −1 Original line number Diff line number Diff line Loading @@ -281,7 +281,8 @@ class TaskSnapshotController { * * @return true if the state of the task is ok to proceed */ private boolean prepareTaskSnapshot(Task task, float scaleFraction, int pixelFormat, @VisibleForTesting boolean prepareTaskSnapshot(Task task, float scaleFraction, int pixelFormat, TaskSnapshot.Builder builder) { if (!mService.mPolicy.isScreenOn()) { if (DEBUG_SCREENSHOT) { Loading Loading @@ -339,6 +340,7 @@ class TaskSnapshotController { && (!activity.fillsParent() || isWindowTranslucent); builder.setTopActivityComponent(activity.mActivityComponent); builder.setPixelFormat(pixelFormat); builder.setIsTranslucent(isTranslucent); builder.setOrientation(activity.getTask().getConfiguration().orientation); builder.setWindowingMode(task.getWindowingMode()); Loading services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -19,10 +19,13 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.server.wm.TaskSnapshotController.SNAPSHOT_MODE_APP_THEME; import static com.android.server.wm.TaskSnapshotController.SNAPSHOT_MODE_REAL; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; Loading Loading @@ -175,4 +178,22 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { } } } @Test public void testPrepareTaskSnapshot() { mAppWindow.mWinAnimator.mLastAlpha = 1f; spyOn(mAppWindow.mWinAnimator); doReturn(true).when(mAppWindow.mWinAnimator).getShown(); doReturn(true).when(mAppWindow.mActivityRecord).isSurfaceShowing(); final ActivityManager.TaskSnapshot.Builder builder = new ActivityManager.TaskSnapshot.Builder(); final float scaleFraction = 0.8f; mWm.mTaskSnapshotController.prepareTaskSnapshot(mAppWindow.mActivityRecord.getTask(), scaleFraction, PixelFormat.UNKNOWN, builder); assertEquals(scaleFraction, builder.getScaleFraction(), 0 /* delta */); // The pixel format should be selected automatically. assertNotEquals(PixelFormat.UNKNOWN, builder.getPixelFormat()); } } Loading
services/core/java/com/android/server/wm/TaskSnapshotController.java +3 −1 Original line number Diff line number Diff line Loading @@ -281,7 +281,8 @@ class TaskSnapshotController { * * @return true if the state of the task is ok to proceed */ private boolean prepareTaskSnapshot(Task task, float scaleFraction, int pixelFormat, @VisibleForTesting boolean prepareTaskSnapshot(Task task, float scaleFraction, int pixelFormat, TaskSnapshot.Builder builder) { if (!mService.mPolicy.isScreenOn()) { if (DEBUG_SCREENSHOT) { Loading Loading @@ -339,6 +340,7 @@ class TaskSnapshotController { && (!activity.fillsParent() || isWindowTranslucent); builder.setTopActivityComponent(activity.mActivityComponent); builder.setPixelFormat(pixelFormat); builder.setIsTranslucent(isTranslucent); builder.setOrientation(activity.getTask().getConfiguration().orientation); builder.setWindowingMode(task.getWindowingMode()); Loading
services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java +21 −0 Original line number Diff line number Diff line Loading @@ -19,10 +19,13 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FIRST_APPLICATION_WINDOW; import static android.view.WindowManager.LayoutParams.FLAG_SECURE; import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn; import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn; import static com.android.server.wm.TaskSnapshotController.SNAPSHOT_MODE_APP_THEME; import static com.android.server.wm.TaskSnapshotController.SNAPSHOT_MODE_REAL; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertTrue; Loading Loading @@ -175,4 +178,22 @@ public class TaskSnapshotControllerTest extends WindowTestsBase { } } } @Test public void testPrepareTaskSnapshot() { mAppWindow.mWinAnimator.mLastAlpha = 1f; spyOn(mAppWindow.mWinAnimator); doReturn(true).when(mAppWindow.mWinAnimator).getShown(); doReturn(true).when(mAppWindow.mActivityRecord).isSurfaceShowing(); final ActivityManager.TaskSnapshot.Builder builder = new ActivityManager.TaskSnapshot.Builder(); final float scaleFraction = 0.8f; mWm.mTaskSnapshotController.prepareTaskSnapshot(mAppWindow.mActivityRecord.getTask(), scaleFraction, PixelFormat.UNKNOWN, builder); assertEquals(scaleFraction, builder.getScaleFraction(), 0 /* delta */); // The pixel format should be selected automatically. assertNotEquals(PixelFormat.UNKNOWN, builder.getPixelFormat()); } }