RESTRICT AUTOMERGE: Fix snapshot starting window stuck if the task never gain focus am: a4f760bee7 am: 72ea33eb75
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15937022 Change-Id: Ib76cbe68741833fe597a828f167e715043814627
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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 */);
|
||||
|
||||
Reference in New Issue
Block a user