Merge "Fix hang on rotation."
This commit is contained in:
committed by
Android (Google) Code Review
commit
1857f0fdb8
@@ -8,6 +8,7 @@ import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_UPDATE_ROTATION;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_MAY_CHANGE;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_FORCE_HIDING_CHANGED;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE;
|
||||
|
||||
import static com.android.server.wm.WindowManagerService.H.UPDATE_ANIM_PARAMETERS;
|
||||
|
||||
@@ -506,7 +507,7 @@ public class WindowAnimator {
|
||||
private void animateLocked() {
|
||||
mPendingLayoutChanges = 0;
|
||||
mCurrentTime = SystemClock.uptimeMillis();
|
||||
mBulkUpdateParams = 0;
|
||||
mBulkUpdateParams = SET_ORIENTATION_CHANGE_COMPLETE;
|
||||
boolean wasAnimating = mAnimating;
|
||||
mAnimating = false;
|
||||
if (WindowManagerService.DEBUG_WINDOW_TRACE) {
|
||||
|
||||
@@ -631,7 +631,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
static final int SET_UPDATE_ROTATION = 1 << 0;
|
||||
static final int SET_WALLPAPER_MAY_CHANGE = 1 << 1;
|
||||
static final int SET_FORCE_HIDING_CHANGED = 1 << 2;
|
||||
static final int CLEAR_ORIENTATION_CHANGE_COMPLETE = 1 << 3;
|
||||
static final int SET_ORIENTATION_CHANGE_COMPLETE = 1 << 3;
|
||||
static final int SET_TURN_ON_SCREEN = 1 << 4;
|
||||
|
||||
boolean mWallpaperForceHidingChanged = false;
|
||||
@@ -7344,7 +7344,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
||||
mInnerFields.mWallpaperForceHidingChanged = true;
|
||||
doRequest = true;
|
||||
}
|
||||
if ((bulkUpdateParams & LayoutFields.CLEAR_ORIENTATION_CHANGE_COMPLETE) != 0) {
|
||||
if ((bulkUpdateParams & LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE)
|
||||
== 0) {
|
||||
mInnerFields.mOrientationChangeComplete = false;
|
||||
} else {
|
||||
mInnerFields.mOrientationChangeComplete = true;
|
||||
|
||||
@@ -5,7 +5,7 @@ package com.android.server.wm;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_STARTING;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
|
||||
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.CLEAR_ORIENTATION_CHANGE_COMPLETE;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_ORIENTATION_CHANGE_COMPLETE;
|
||||
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_TURN_ON_SCREEN;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -1226,7 +1226,7 @@ class WindowStateAnimator {
|
||||
if (displayed) {
|
||||
if (w.mOrientationChanging) {
|
||||
if (!w.isDrawnLw()) {
|
||||
mAnimator.mBulkUpdateParams |= CLEAR_ORIENTATION_CHANGE_COMPLETE;
|
||||
mAnimator.mBulkUpdateParams &= ~SET_ORIENTATION_CHANGE_COMPLETE;
|
||||
if (DEBUG_ORIENTATION) Slog.v(TAG,
|
||||
"Orientation continue waiting for draw in " + w);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user