Merge "Fix rotation shell transition" into sc-v2-dev
This commit is contained in:
@@ -8183,7 +8183,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
|
|||||||
if (shouldRelaunchLocked(changes, mTmpConfig) || forceNewConfig) {
|
if (shouldRelaunchLocked(changes, mTmpConfig) || forceNewConfig) {
|
||||||
// Aha, the activity isn't handling the change, so DIE DIE DIE.
|
// Aha, the activity isn't handling the change, so DIE DIE DIE.
|
||||||
configChangeFlags |= changes;
|
configChangeFlags |= changes;
|
||||||
startFreezingScreenLocked(globalChanges);
|
if (!mAtmService.getTransitionController().isShellTransitionsEnabled()) {
|
||||||
|
startFreezingScreenLocked(globalChanges);
|
||||||
|
}
|
||||||
forceNewConfig = false;
|
forceNewConfig = false;
|
||||||
preserveWindow &= isResizeOnlyChange(changes);
|
preserveWindow &= isResizeOnlyChange(changes);
|
||||||
final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged());
|
final boolean hasResizeChange = hasResizeChange(changes & ~info.getRealConfigChanged());
|
||||||
|
|||||||
@@ -2403,6 +2403,12 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
void removeImmediately() {
|
void removeImmediately() {
|
||||||
|
if (!mRemoved) {
|
||||||
|
// Destroy surface before super call. The general pattern is that the children need
|
||||||
|
// to be removed before the parent (so that the sync-engine tracking works). Since
|
||||||
|
// WindowStateAnimator is a "virtual" child, we have to do it manually here.
|
||||||
|
mWinAnimator.destroySurfaceLocked(getSyncTransaction());
|
||||||
|
}
|
||||||
super.removeImmediately();
|
super.removeImmediately();
|
||||||
|
|
||||||
if (mRemoved) {
|
if (mRemoved) {
|
||||||
@@ -2444,8 +2450,6 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
|||||||
|
|
||||||
disposeInputChannel();
|
disposeInputChannel();
|
||||||
|
|
||||||
mWinAnimator.destroySurfaceLocked(mTmpTransaction);
|
|
||||||
mTmpTransaction.apply();
|
|
||||||
mSession.windowRemovedLocked();
|
mSession.windowRemovedLocked();
|
||||||
try {
|
try {
|
||||||
mClient.asBinder().unlinkToDeath(mDeathRecipient, 0);
|
mClient.asBinder().unlinkToDeath(mDeathRecipient, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user