Merge "Delete the delay for keeping tasksnapshot on screen." into sc-dev

This commit is contained in:
Wei Sheng Shih
2021-05-20 01:26:29 +00:00
committed by Android (Google) Code Review
2 changed files with 4 additions and 27 deletions

View File

@@ -16,7 +16,6 @@
package com.android.wm.shell.startingsurface; package com.android.wm.shell.startingsurface;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME;
import static android.graphics.Color.WHITE; import static android.graphics.Color.WHITE;
import static android.graphics.Color.alpha; import static android.graphics.Color.alpha;
import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
@@ -63,7 +62,6 @@ import android.graphics.RectF;
import android.hardware.HardwareBuffer; import android.hardware.HardwareBuffer;
import android.os.IBinder; import android.os.IBinder;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.SystemClock;
import android.os.Trace; import android.os.Trace;
import android.util.MergedConfiguration; import android.util.MergedConfiguration;
import android.util.Slog; import android.util.Slog;
@@ -94,9 +92,6 @@ import com.android.wm.shell.common.ShellExecutor;
* @hide * @hide
*/ */
public class TaskSnapshotWindow { public class TaskSnapshotWindow {
private static final long SIZE_MISMATCH_MINIMUM_TIME_MS = 450;
/** /**
* When creating the starting window, we use the exact same layout flags such that we end up * When creating the starting window, we use the exact same layout flags such that we end up
* with a window with the exact same dimensions etc. However, these flags are not used in layout * with a window with the exact same dimensions etc. However, these flags are not used in layout
@@ -136,10 +131,8 @@ public class TaskSnapshotWindow {
private final RectF mTmpDstFrame = new RectF(); private final RectF mTmpDstFrame = new RectF();
private final CharSequence mTitle; private final CharSequence mTitle;
private boolean mHasDrawn; private boolean mHasDrawn;
private long mShownTime;
private boolean mSizeMismatch; private boolean mSizeMismatch;
private final Paint mBackgroundPaint = new Paint(); private final Paint mBackgroundPaint = new Paint();
private final int mActivityType;
private final int mStatusBarColor; private final int mStatusBarColor;
private final SystemBarBackgroundPainter mSystemBarBackgroundPainter; private final SystemBarBackgroundPainter mSystemBarBackgroundPainter;
private final int mOrientationOnCreation; private final int mOrientationOnCreation;
@@ -195,8 +188,6 @@ public class TaskSnapshotWindow {
final Point taskSize = snapshot.getTaskSize(); final Point taskSize = snapshot.getTaskSize();
final Rect taskBounds = new Rect(0, 0, taskSize.x, taskSize.y); final Rect taskBounds = new Rect(0, 0, taskSize.x, taskSize.y);
final int orientation = snapshot.getOrientation(); final int orientation = snapshot.getOrientation();
final int activityType = runningTaskInfo.topActivityType;
final int displayId = runningTaskInfo.displayId; final int displayId = runningTaskInfo.displayId;
final IWindowSession session = WindowManagerGlobal.getWindowSession(); final IWindowSession session = WindowManagerGlobal.getWindowSession();
@@ -216,7 +207,7 @@ public class TaskSnapshotWindow {
final TaskSnapshotWindow snapshotSurface = new TaskSnapshotWindow( final TaskSnapshotWindow snapshotSurface = new TaskSnapshotWindow(
surfaceControl, snapshot, layoutParams.getTitle(), taskDescription, appearance, surfaceControl, snapshot, layoutParams.getTitle(), taskDescription, appearance,
windowFlags, windowPrivateFlags, taskBounds, orientation, activityType, windowFlags, windowPrivateFlags, taskBounds, orientation,
topWindowInsetsState, clearWindowHandler, mainExecutor); topWindowInsetsState, clearWindowHandler, mainExecutor);
final Window window = snapshotSurface.mWindow; final Window window = snapshotSurface.mWindow;
@@ -256,8 +247,8 @@ public class TaskSnapshotWindow {
public TaskSnapshotWindow(SurfaceControl surfaceControl, public TaskSnapshotWindow(SurfaceControl surfaceControl,
TaskSnapshot snapshot, CharSequence title, TaskDescription taskDescription, TaskSnapshot snapshot, CharSequence title, TaskDescription taskDescription,
int appearance, int windowFlags, int windowPrivateFlags, Rect taskBounds, int appearance, int windowFlags, int windowPrivateFlags, Rect taskBounds,
int currentOrientation, int activityType, InsetsState topWindowInsetsState, int currentOrientation, InsetsState topWindowInsetsState, Runnable clearWindowHandler,
Runnable clearWindowHandler, ShellExecutor splashScreenExecutor) { ShellExecutor splashScreenExecutor) {
mSplashScreenExecutor = splashScreenExecutor; mSplashScreenExecutor = splashScreenExecutor;
mSession = WindowManagerGlobal.getWindowSession(); mSession = WindowManagerGlobal.getWindowSession();
mWindow = new Window(); mWindow = new Window();
@@ -272,7 +263,6 @@ public class TaskSnapshotWindow {
windowPrivateFlags, appearance, taskDescription, 1f, topWindowInsetsState); windowPrivateFlags, appearance, taskDescription, 1f, topWindowInsetsState);
mStatusBarColor = taskDescription.getStatusBarColor(); mStatusBarColor = taskDescription.getStatusBarColor();
mOrientationOnCreation = currentOrientation; mOrientationOnCreation = currentOrientation;
mActivityType = activityType;
mTransaction = new SurfaceControl.Transaction(); mTransaction = new SurfaceControl.Transaction();
mClearWindowHandler = clearWindowHandler; mClearWindowHandler = clearWindowHandler;
} }
@@ -295,17 +285,6 @@ public class TaskSnapshotWindow {
} }
void remove() { void remove() {
final long now = SystemClock.uptimeMillis();
if (mSizeMismatch && now - mShownTime < SIZE_MISMATCH_MINIMUM_TIME_MS
// Show the latest content as soon as possible for unlocking to home.
&& mActivityType != ACTIVITY_TYPE_HOME) {
final long delayTime = mShownTime + SIZE_MISMATCH_MINIMUM_TIME_MS - now;
mSplashScreenExecutor.executeDelayed(() -> remove(), delayTime);
if (DEBUG) {
Slog.d(TAG, "Defer removing snapshot surface in " + delayTime);
}
return;
}
try { try {
if (DEBUG) { if (DEBUG) {
Slog.d(TAG, "Removing snapshot surface, mHasDrawn: " + mHasDrawn); Slog.d(TAG, "Removing snapshot surface, mHasDrawn: " + mHasDrawn);
@@ -346,7 +325,6 @@ public class TaskSnapshotWindow {
} else { } else {
drawSizeMatchSnapshot(); drawSizeMatchSnapshot();
} }
mShownTime = SystemClock.uptimeMillis();
mHasDrawn = true; mHasDrawn = true;
reportDrawn(); reportDrawn();

View File

@@ -16,7 +16,6 @@
package com.android.wm.shell.startingsurface; package com.android.wm.shell.startingsurface;
import static android.app.WindowConfiguration.ACTIVITY_TYPE_STANDARD;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN; import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
import static android.content.res.Configuration.ORIENTATION_PORTRAIT; import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS; import static android.view.WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS;
@@ -82,7 +81,7 @@ public class TaskSnapshotWindowTest {
mWindow = new TaskSnapshotWindow(new SurfaceControl(), snapshot, "Test", mWindow = new TaskSnapshotWindow(new SurfaceControl(), snapshot, "Test",
createTaskDescription(Color.WHITE, Color.RED, Color.BLUE), createTaskDescription(Color.WHITE, Color.RED, Color.BLUE),
0 /* appearance */, windowFlags /* windowFlags */, 0 /* privateWindowFlags */, 0 /* appearance */, windowFlags /* windowFlags */, 0 /* privateWindowFlags */,
taskBounds, ORIENTATION_PORTRAIT, ACTIVITY_TYPE_STANDARD, new InsetsState(), taskBounds, ORIENTATION_PORTRAIT, new InsetsState(),
null /* clearWindow */, new TestShellExecutor()); null /* clearWindow */, new TestShellExecutor());
} }