RESTRICT AUTOMERGE: Fix snapshot starting window stuck if the task never gain focus am: a4f760bee7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15937022

Change-Id: I67c974b959f0a5695384bba8ecfa144fde2e101e
This commit is contained in:
Ming-Shin Lu
2021-09-30 10:15:28 +00:00
committed by Automerger Merge Worker
3 changed files with 2 additions and 17 deletions

View File

@@ -123,7 +123,7 @@ public class TaskSnapshotWindow {
* Ideally the delay time will be shorter when receiving
* {@link StartingSurfaceDrawer#onImeDrawnOnTask(int)}.
*/
private static final long MAX_DELAY_REMOVAL_TIME_IME_VISIBLE = 450;
private static final long MAX_DELAY_REMOVAL_TIME_IME_VISIBLE = 600;
//tmp vars for unused relayout params
private static final Point TMP_SURFACE_SIZE = new Point();

View File

@@ -2253,17 +2253,6 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
}
}
void removeStartingWindowIfNeeded() {
// Removing the task snapshot after the task is actually focused (see
// Task#onWindowFocusChanged). Since some of the app contents may draw in this time and
// requires more times to draw finish, in case flicking may happen when removing the task
// snapshot too early. (i.e. Showing IME.)
if ((mStartingData instanceof SnapshotStartingData) && !getTask().isFocused()) {
return;
}
removeStartingWindow();
}
void removeStartingWindow() {
removeStartingWindowAnimation(true /* prepareAnimation */);
}
@@ -5835,7 +5824,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
// own stuff.
win.cancelAnimation();
}
removeStartingWindowIfNeeded();
removeStartingWindow();
updateReportedVisibilityLocked();
}

View File

@@ -5206,10 +5206,6 @@ class Task extends WindowContainer<WindowContainer> {
* @param hasFocus
*/
void onWindowFocusChanged(boolean hasFocus) {
final ActivityRecord topAct = getTopVisibleActivity();
if (topAct != null && (topAct.mStartingData instanceof SnapshotStartingData)) {
topAct.removeStartingWindowIfNeeded();
}
updateShadowsRadius(hasFocus, getSyncTransaction());
// TODO(b/180525887): Un-comment once there is resolution on the bug.
// dispatchTaskInfoChangedIfNeeded(false /* force */);