Merge "Clean up updating bounds after config/display info change" into nyc-dev

am: a572863

* commit 'a57286307b3a5a81f78b47d2a0ac6ae2458f66f9':
  Clean up updating bounds after config/display info change

Change-Id: I95f756eedd4b59e7a2c630f98493dedfd36842cf
This commit is contained in:
Jorim Jaggi
2016-04-28 06:09:46 +00:00
committed by android-build-merger

View File

@@ -110,11 +110,6 @@ public class TaskStack implements DimLayer.DimLayerUser,
/** Detach this stack from its display when animation completes. */
boolean mDeferDetach;
// Display rotation as of the last time the display information was updated for this stack.
private int mLastUpdateDisplayInfoRotation = -1;
// Display rotation as of the last time the configuration was updated for this stack.
private int mLastConfigChangedRotation = -1;
// Whether the stack and all its tasks is currently being drag-resized
private boolean mDragResizing;
@@ -371,36 +366,27 @@ public class TaskStack implements DimLayer.DimLayerUser,
final int newDensity = mDisplayContent.getDisplayInfo().logicalDensityDpi;
if (mRotation == newRotation && mDensity == newDensity) {
setBounds(mTmpRect2);
} else {
mLastUpdateDisplayInfoRotation = newRotation;
updateBoundsAfterConfigChange(true);
}
// If the rotation or density didn't match, we'll update it in onConfigurationChanged.
}
boolean onConfigurationChanged() {
mLastConfigChangedRotation = getDisplayInfo().rotation;
return updateBoundsAfterConfigChange(false);
return updateBoundsAfterConfigChange();
}
boolean updateBoundsAfterConfigChange(boolean scheduleResize) {
private boolean updateBoundsAfterConfigChange() {
if (mFullscreen) {
// Bounds will already be set correctly when display info is updated in the case of
// fullscreen.
return false;
}
if (mLastConfigChangedRotation != mLastUpdateDisplayInfoRotation) {
// We wait for the rotation values after configuration change and display info. update
// to be equal before updating the bounds due to rotation change otherwise things might
// get out of alignment...
return false;
}
final int newRotation = getDisplayInfo().rotation;
final int newDensity = getDisplayInfo().logicalDensityDpi;
if (mRotation == newRotation && mDensity == newDensity) {
// Nothing to do here if the rotation didn't change
// Nothing to do here as we already update the state in updateDisplayInfo.
return false;
}
@@ -416,16 +402,7 @@ public class TaskStack implements DimLayer.DimLayerUser,
}
}
if (scheduleResize) {
// Post message to inform activity manager of the bounds change simulating
// a one-way call. We do this to prevent a deadlock between window manager
// lock and activity manager lock been held.
mService.mH.obtainMessage(RESIZE_STACK, mStackId,
0 /*allowResizeInDockedMode*/, mTmpRect2).sendToTarget();
} else {
mBoundsAfterRotation.set(mTmpRect2);
}
mBoundsAfterRotation.set(mTmpRect2);
return true;
}