Loading services/core/java/com/android/server/wm/TaskSnapshotPersister.java +3 −11 Original line number Original line Diff line number Diff line Loading @@ -99,10 +99,10 @@ class TaskSnapshotPersister { if (lowResTaskSnapshotScale > 0) { if (lowResTaskSnapshotScale > 0) { mLowResScaleFactor = lowResTaskSnapshotScale / highResTaskSnapshotScale; mLowResScaleFactor = lowResTaskSnapshotScale / highResTaskSnapshotScale; setEnableLowResSnapshots(true); mEnableLowResSnapshots = true; } else { } else { mLowResScaleFactor = 0; mLowResScaleFactor = 0; setEnableLowResSnapshots(false); mEnableLowResSnapshots = false; } } mUse16BitFormat = service.mContext.getResources().getBoolean( mUse16BitFormat = service.mContext.getResources().getBoolean( Loading Loading @@ -174,14 +174,6 @@ class TaskSnapshotPersister { return mEnableLowResSnapshots; return mEnableLowResSnapshots; } } /** * Not to be used. Only here for testing. */ @VisibleForTesting void setEnableLowResSnapshots(boolean enabled) { mEnableLowResSnapshots = enabled; } /** /** * Return if task snapshots are stored in 16 bit pixel format. * Return if task snapshots are stored in 16 bit pixel format. * * Loading Loading @@ -405,7 +397,7 @@ class TaskSnapshotPersister { return false; return false; } } if (!enableLowResSnapshots()) { if (!mEnableLowResSnapshots) { swBitmap.recycle(); swBitmap.recycle(); return true; return true; } } Loading services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java +10 −2 Original line number Original line Diff line number Diff line Loading @@ -81,9 +81,9 @@ public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBas assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertNotNull(snapshot.getSnapshot()); assertNotNull(snapshot.getSnapshot()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); assertNull(mLoader.loadTask(1, mTestUserId, true /* isLowResolution */)); } } @Test @Test public void testRemoveObsoleteFiles() { public void testRemoveObsoleteFiles() { mPersister.persistSnapshot(1, mTestUserId, createSnapshot()); mPersister.persistSnapshot(1, mTestUserId, createSnapshot()); Loading Loading @@ -132,10 +132,18 @@ public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBas assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, false /* isLowResolution */)); false /* restoreFromDisk */, false /* isLowResolution */)); // Load it from disk // Attempt to load the low-res snapshot from the disk assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, true /* restoreFromDisk */, true /* isLowResolution */)); true /* restoreFromDisk */, true /* isLowResolution */)); // Load the high-res (default) snapshot from disk assertNotNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, true /* restoreFromDisk */, false /* isLowResolution */)); // Make sure it's not in the cache now. assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, true /* isLowResolution */)); // Make sure it's not in the cache now. // Make sure it's not in the cache now. assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, false /* isLowResolution */)); false /* restoreFromDisk */, false /* isLowResolution */)); Loading services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java +0 −29 Original line number Original line Diff line number Diff line Loading @@ -292,35 +292,6 @@ public class TaskSnapshotPersisterLoaderTest extends TaskSnapshotPersisterTestBa assertNull(lowResConf); assertNull(lowResConf); } } @Test public void testDisabledLowResolutionPersistAndLoadSnapshot() { mPersister.setEnableLowResSnapshots(false); TaskSnapshot a = new TaskSnapshotBuilder() .setScaleFraction(0.5f) .setIsLowResolution(true) .build(); assertTrue(a.isLowResolution()); mPersister.persistSnapshot(1, mTestUserId, a); mPersister.waitForQueueEmpty(); final File[] files = new File[]{new File(FILES_DIR.getPath() + "/snapshots/1.proto"), new File(FILES_DIR.getPath() + "/snapshots/1.jpg")}; final File[] nonExistsFiles = new File[]{ new File(FILES_DIR.getPath() + "/snapshots/1_reduced.jpg"), }; assertTrueForFiles(files, File::exists, " must exist"); assertTrueForFiles(nonExistsFiles, file -> !file.exists(), " must not exist"); final TaskSnapshot snapshot = mLoader.loadTask(1, mTestUserId, false /* isLowResolution */); assertNotNull(snapshot); assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertNotNull(snapshot.getSnapshot()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); final TaskSnapshot snapshotNotExist = mLoader.loadTask(1, mTestUserId, true /* isLowResolution */); assertNull(snapshotNotExist); } @Test @Test public void testIsRealSnapshotPersistAndLoadSnapshot() { public void testIsRealSnapshotPersistAndLoadSnapshot() { TaskSnapshot a = new TaskSnapshotBuilder() TaskSnapshot a = new TaskSnapshotBuilder() Loading services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java +5 −8 Original line number Original line Diff line number Diff line Loading @@ -127,7 +127,6 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { private static final int SNAPSHOT_HEIGHT = 100; private static final int SNAPSHOT_HEIGHT = 100; private float mScaleFraction = 1f; private float mScaleFraction = 1f; private boolean mIsLowResolution = false; private boolean mIsRealSnapshot = true; private boolean mIsRealSnapshot = true; private boolean mIsTranslucent = false; private boolean mIsTranslucent = false; private int mWindowingMode = WINDOWING_MODE_FULLSCREEN; private int mWindowingMode = WINDOWING_MODE_FULLSCREEN; Loading @@ -142,11 +141,6 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { return this; return this; } } TaskSnapshotBuilder setIsLowResolution(boolean isLowResolution) { mIsLowResolution = isLowResolution; return this; } TaskSnapshotBuilder setIsRealSnapshot(boolean isRealSnapshot) { TaskSnapshotBuilder setIsRealSnapshot(boolean isRealSnapshot) { mIsRealSnapshot = isRealSnapshot; mIsRealSnapshot = isRealSnapshot; return this; return this; Loading Loading @@ -186,8 +180,11 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { return new TaskSnapshot(MOCK_SNAPSHOT_ID, new ComponentName("", ""), buffer, return new TaskSnapshot(MOCK_SNAPSHOT_ID, new ComponentName("", ""), buffer, ColorSpace.get(ColorSpace.Named.SRGB), ORIENTATION_PORTRAIT, ColorSpace.get(ColorSpace.Named.SRGB), ORIENTATION_PORTRAIT, mRotation, taskSize, TEST_INSETS, mRotation, taskSize, TEST_INSETS, mIsLowResolution, mIsRealSnapshot, // When building a TaskSnapshot with the Builder class, isLowResolution mWindowingMode, mSystemUiVisibility, mIsTranslucent); // is always false. Low-res snapshots are only created when loading from // disk. false /* isLowResolution */, mIsRealSnapshot, mWindowingMode, mSystemUiVisibility, mIsTranslucent); } } } } } } Loading
services/core/java/com/android/server/wm/TaskSnapshotPersister.java +3 −11 Original line number Original line Diff line number Diff line Loading @@ -99,10 +99,10 @@ class TaskSnapshotPersister { if (lowResTaskSnapshotScale > 0) { if (lowResTaskSnapshotScale > 0) { mLowResScaleFactor = lowResTaskSnapshotScale / highResTaskSnapshotScale; mLowResScaleFactor = lowResTaskSnapshotScale / highResTaskSnapshotScale; setEnableLowResSnapshots(true); mEnableLowResSnapshots = true; } else { } else { mLowResScaleFactor = 0; mLowResScaleFactor = 0; setEnableLowResSnapshots(false); mEnableLowResSnapshots = false; } } mUse16BitFormat = service.mContext.getResources().getBoolean( mUse16BitFormat = service.mContext.getResources().getBoolean( Loading Loading @@ -174,14 +174,6 @@ class TaskSnapshotPersister { return mEnableLowResSnapshots; return mEnableLowResSnapshots; } } /** * Not to be used. Only here for testing. */ @VisibleForTesting void setEnableLowResSnapshots(boolean enabled) { mEnableLowResSnapshots = enabled; } /** /** * Return if task snapshots are stored in 16 bit pixel format. * Return if task snapshots are stored in 16 bit pixel format. * * Loading Loading @@ -405,7 +397,7 @@ class TaskSnapshotPersister { return false; return false; } } if (!enableLowResSnapshots()) { if (!mEnableLowResSnapshots) { swBitmap.recycle(); swBitmap.recycle(); return true; return true; } } Loading
services/tests/wmtests/src/com/android/server/wm/TaskSnapshotLowResDisabledTest.java +10 −2 Original line number Original line Diff line number Diff line Loading @@ -81,9 +81,9 @@ public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBas assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertNotNull(snapshot.getSnapshot()); assertNotNull(snapshot.getSnapshot()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); assertNull(mLoader.loadTask(1, mTestUserId, true /* isLowResolution */)); } } @Test @Test public void testRemoveObsoleteFiles() { public void testRemoveObsoleteFiles() { mPersister.persistSnapshot(1, mTestUserId, createSnapshot()); mPersister.persistSnapshot(1, mTestUserId, createSnapshot()); Loading Loading @@ -132,10 +132,18 @@ public class TaskSnapshotLowResDisabledTest extends TaskSnapshotPersisterTestBas assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, false /* isLowResolution */)); false /* restoreFromDisk */, false /* isLowResolution */)); // Load it from disk // Attempt to load the low-res snapshot from the disk assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, true /* restoreFromDisk */, true /* isLowResolution */)); true /* restoreFromDisk */, true /* isLowResolution */)); // Load the high-res (default) snapshot from disk assertNotNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, true /* restoreFromDisk */, false /* isLowResolution */)); // Make sure it's not in the cache now. assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, true /* isLowResolution */)); // Make sure it's not in the cache now. // Make sure it's not in the cache now. assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, assertNull(mCache.getSnapshot(window.getTask().mTaskId, mWm.mCurrentUserId, false /* restoreFromDisk */, false /* isLowResolution */)); false /* restoreFromDisk */, false /* isLowResolution */)); Loading
services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterLoaderTest.java +0 −29 Original line number Original line Diff line number Diff line Loading @@ -292,35 +292,6 @@ public class TaskSnapshotPersisterLoaderTest extends TaskSnapshotPersisterTestBa assertNull(lowResConf); assertNull(lowResConf); } } @Test public void testDisabledLowResolutionPersistAndLoadSnapshot() { mPersister.setEnableLowResSnapshots(false); TaskSnapshot a = new TaskSnapshotBuilder() .setScaleFraction(0.5f) .setIsLowResolution(true) .build(); assertTrue(a.isLowResolution()); mPersister.persistSnapshot(1, mTestUserId, a); mPersister.waitForQueueEmpty(); final File[] files = new File[]{new File(FILES_DIR.getPath() + "/snapshots/1.proto"), new File(FILES_DIR.getPath() + "/snapshots/1.jpg")}; final File[] nonExistsFiles = new File[]{ new File(FILES_DIR.getPath() + "/snapshots/1_reduced.jpg"), }; assertTrueForFiles(files, File::exists, " must exist"); assertTrueForFiles(nonExistsFiles, file -> !file.exists(), " must not exist"); final TaskSnapshot snapshot = mLoader.loadTask(1, mTestUserId, false /* isLowResolution */); assertNotNull(snapshot); assertEquals(TEST_INSETS, snapshot.getContentInsets()); assertNotNull(snapshot.getSnapshot()); assertEquals(Configuration.ORIENTATION_PORTRAIT, snapshot.getOrientation()); final TaskSnapshot snapshotNotExist = mLoader.loadTask(1, mTestUserId, true /* isLowResolution */); assertNull(snapshotNotExist); } @Test @Test public void testIsRealSnapshotPersistAndLoadSnapshot() { public void testIsRealSnapshotPersistAndLoadSnapshot() { TaskSnapshot a = new TaskSnapshotBuilder() TaskSnapshot a = new TaskSnapshotBuilder() Loading
services/tests/wmtests/src/com/android/server/wm/TaskSnapshotPersisterTestBase.java +5 −8 Original line number Original line Diff line number Diff line Loading @@ -127,7 +127,6 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { private static final int SNAPSHOT_HEIGHT = 100; private static final int SNAPSHOT_HEIGHT = 100; private float mScaleFraction = 1f; private float mScaleFraction = 1f; private boolean mIsLowResolution = false; private boolean mIsRealSnapshot = true; private boolean mIsRealSnapshot = true; private boolean mIsTranslucent = false; private boolean mIsTranslucent = false; private int mWindowingMode = WINDOWING_MODE_FULLSCREEN; private int mWindowingMode = WINDOWING_MODE_FULLSCREEN; Loading @@ -142,11 +141,6 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { return this; return this; } } TaskSnapshotBuilder setIsLowResolution(boolean isLowResolution) { mIsLowResolution = isLowResolution; return this; } TaskSnapshotBuilder setIsRealSnapshot(boolean isRealSnapshot) { TaskSnapshotBuilder setIsRealSnapshot(boolean isRealSnapshot) { mIsRealSnapshot = isRealSnapshot; mIsRealSnapshot = isRealSnapshot; return this; return this; Loading Loading @@ -186,8 +180,11 @@ class TaskSnapshotPersisterTestBase extends WindowTestsBase { return new TaskSnapshot(MOCK_SNAPSHOT_ID, new ComponentName("", ""), buffer, return new TaskSnapshot(MOCK_SNAPSHOT_ID, new ComponentName("", ""), buffer, ColorSpace.get(ColorSpace.Named.SRGB), ORIENTATION_PORTRAIT, ColorSpace.get(ColorSpace.Named.SRGB), ORIENTATION_PORTRAIT, mRotation, taskSize, TEST_INSETS, mRotation, taskSize, TEST_INSETS, mIsLowResolution, mIsRealSnapshot, // When building a TaskSnapshot with the Builder class, isLowResolution mWindowingMode, mSystemUiVisibility, mIsTranslucent); // is always false. Low-res snapshots are only created when loading from // disk. false /* isLowResolution */, mIsRealSnapshot, mWindowingMode, mSystemUiVisibility, mIsTranslucent); } } } } } }