diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/TaskSnapshotController.java | 4 | ||||
| -rw-r--r-- | services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java | 21 |
2 files changed, 24 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/TaskSnapshotController.java b/services/core/java/com/android/server/wm/TaskSnapshotController.java index 456068c788b7..3182a7243e7f 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotController.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotController.java @@ -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) { @@ -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()); diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java index e17e0d87994c..8fe0cdbbd872 100644 --- a/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/TaskSnapshotControllerTest.java @@ -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; @@ -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()); + } } |