Merge "Take snapshot when device becomes dozing and pulsing" into sc-dev
This commit is contained in:
@@ -167,6 +167,11 @@ class KeyguardController {
|
||||
if (aodChanged) {
|
||||
// Ensure the new state takes effect.
|
||||
mWindowManager.mWindowPlacerLocked.performSurfacePlacement();
|
||||
// If the device can enter AOD and keyguard at the same time, the screen will not be
|
||||
// turned off, so the snapshot needs to be refreshed when these states are changed.
|
||||
if (aodShowing && keyguardShowing && keyguardChanged) {
|
||||
mWindowManager.mTaskSnapshotController.snapshotForSleeping(DEFAULT_DISPLAY);
|
||||
}
|
||||
}
|
||||
|
||||
if (keyguardChanged) {
|
||||
|
||||
@@ -635,20 +635,7 @@ class TaskSnapshotController {
|
||||
mHandler.post(() -> {
|
||||
try {
|
||||
synchronized (mService.mGlobalLock) {
|
||||
mTmpTasks.clear();
|
||||
mService.mRoot.getDisplayContent(displayId).forAllTasks(task -> {
|
||||
// Since RecentsAnimation will handle task snapshot while switching apps
|
||||
// with the best capture timing (e.g. IME window capture), No need
|
||||
// additional task capture while task is controlled by RecentsAnimation.
|
||||
if (task.isVisible() && !task.isAnimatingByRecents()) {
|
||||
mTmpTasks.add(task);
|
||||
}
|
||||
});
|
||||
// Allow taking snapshot of home when turning screen off to reduce the delay of
|
||||
// waking from secure lock to home.
|
||||
final boolean allowSnapshotHome = displayId == Display.DEFAULT_DISPLAY &&
|
||||
mService.mPolicy.isKeyguardSecure(mService.mCurrentUserId);
|
||||
snapshotTasks(mTmpTasks, allowSnapshotHome);
|
||||
snapshotForSleeping(displayId);
|
||||
}
|
||||
} finally {
|
||||
listener.onScreenOff();
|
||||
@@ -656,6 +643,27 @@ class TaskSnapshotController {
|
||||
});
|
||||
}
|
||||
|
||||
/** Called when the device is going to sleep (e.g. screen off, AOD without screen off). */
|
||||
void snapshotForSleeping(int displayId) {
|
||||
if (shouldDisableSnapshots()) {
|
||||
return;
|
||||
}
|
||||
mTmpTasks.clear();
|
||||
mService.mRoot.getDisplayContent(displayId).forAllTasks(task -> {
|
||||
// Since RecentsAnimation will handle task snapshot while switching apps with the best
|
||||
// capture timing (e.g. IME window capture), No need additional task capture while task
|
||||
// is controlled by RecentsAnimation.
|
||||
if (task.isVisible() && !task.isAnimatingByRecents()) {
|
||||
mTmpTasks.add(task);
|
||||
}
|
||||
});
|
||||
// Allow taking snapshot of home when turning screen off to reduce the delay of waking from
|
||||
// secure lock to home.
|
||||
final boolean allowSnapshotHome = displayId == Display.DEFAULT_DISPLAY
|
||||
&& mService.mPolicy.isKeyguardSecure(mService.mCurrentUserId);
|
||||
snapshotTasks(mTmpTasks, allowSnapshotHome);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The {@link Appearance} flags for the top fullscreen opaque window in the given
|
||||
* {@param task}.
|
||||
|
||||
Reference in New Issue
Block a user