Merge "Reset hidden state of AppToken that was cleared due to starting window" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a36e3a1320
@@ -53,7 +53,6 @@ import android.app.Activity;
|
||||
import android.content.res.Configuration;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Binder;
|
||||
import android.os.Build;
|
||||
import android.os.Debug;
|
||||
import android.os.IBinder;
|
||||
import android.os.SystemClock;
|
||||
@@ -155,6 +154,9 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
StartingSurface startingSurface;
|
||||
boolean startingDisplayed;
|
||||
boolean startingMoved;
|
||||
// True if the hidden state of this token was forced to false due to a transferred starting
|
||||
// window.
|
||||
private boolean mHiddenSetFromTransferredStartingWindow;
|
||||
boolean firstWindowDrawn;
|
||||
private final WindowState.UpdateReportedVisibilityResults mReportedVisibilityResults =
|
||||
new WindowState.UpdateReportedVisibilityResults();
|
||||
@@ -185,7 +187,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
ArrayDeque<Rect> mFrozenBounds = new ArrayDeque<>();
|
||||
ArrayDeque<Configuration> mFrozenMergedConfig = new ArrayDeque<>();
|
||||
|
||||
private boolean mDisbalePreviewScreenshots;
|
||||
private boolean mDisablePreviewScreenshots;
|
||||
|
||||
Task mLastParent;
|
||||
|
||||
@@ -790,11 +792,17 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
if (getController() != null) {
|
||||
getController().removeStartingWindow();
|
||||
}
|
||||
} else if (mChildren.size() == 0 && startingData != null) {
|
||||
} else if (mChildren.size() == 0) {
|
||||
// If this is the last window and we had requested a starting transition window,
|
||||
// well there is no point now.
|
||||
if (DEBUG_STARTING_WINDOW) Slog.v(TAG_WM, "Nulling last startingData");
|
||||
startingData = null;
|
||||
if (mHiddenSetFromTransferredStartingWindow) {
|
||||
// We set the hidden state to false for the token from a transferred starting window.
|
||||
// We now reset it back to true since the starting window was the last window in the
|
||||
// token.
|
||||
hidden = true;
|
||||
}
|
||||
} else if (mChildren.size() == 1 && startingSurface != null && !isRelaunching()) {
|
||||
// If this is the last window except for a starting transition window,
|
||||
// we need to get rid of the starting transition.
|
||||
@@ -1171,6 +1179,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
"Removing starting " + tStartingWindow + " from " + fromToken);
|
||||
fromToken.removeChild(tStartingWindow);
|
||||
fromToken.postWindowRemoveStartingWindowCleanup(tStartingWindow);
|
||||
fromToken.mHiddenSetFromTransferredStartingWindow = false;
|
||||
addWindow(tStartingWindow);
|
||||
|
||||
// Propagate other interesting state between the tokens. If the old token is displayed,
|
||||
@@ -1186,6 +1195,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
if (!fromToken.hidden) {
|
||||
hidden = false;
|
||||
hiddenRequested = false;
|
||||
mHiddenSetFromTransferredStartingWindow = true;
|
||||
}
|
||||
setClientHidden(fromToken.mClientHidden);
|
||||
fromToken.mAppAnimator.transferCurrentAnimation(
|
||||
@@ -1544,7 +1554,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
* See {@link Activity#setDisablePreviewScreenshots}.
|
||||
*/
|
||||
void setDisablePreviewScreenshots(boolean disable) {
|
||||
mDisbalePreviewScreenshots = disable;
|
||||
mDisablePreviewScreenshots = disable;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1556,7 +1566,7 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
* screenshot.
|
||||
*/
|
||||
boolean shouldUseAppThemeSnapshot() {
|
||||
return mDisbalePreviewScreenshots || forAllWindows(w -> (w.mAttrs.flags & FLAG_SECURE) != 0,
|
||||
return mDisablePreviewScreenshots || forAllWindows(w -> (w.mAttrs.flags & FLAG_SECURE) != 0,
|
||||
true /* topToBottom */);
|
||||
}
|
||||
|
||||
@@ -1604,11 +1614,13 @@ class AppWindowToken extends WindowToken implements WindowManagerService.AppFree
|
||||
pw.print(" mIsExiting="); pw.println(mIsExiting);
|
||||
}
|
||||
if (startingWindow != null || startingSurface != null
|
||||
|| startingDisplayed || startingMoved) {
|
||||
|| startingDisplayed || startingMoved || mHiddenSetFromTransferredStartingWindow) {
|
||||
pw.print(prefix); pw.print("startingWindow="); pw.print(startingWindow);
|
||||
pw.print(" startingSurface="); pw.print(startingSurface);
|
||||
pw.print(" startingDisplayed="); pw.print(startingDisplayed);
|
||||
pw.print(" startingMoved="); pw.println(startingMoved);
|
||||
pw.print(" startingMoved="); pw.print(startingMoved);
|
||||
pw.println(" mHiddenSetFromTransferredStartingWindow="
|
||||
+ mHiddenSetFromTransferredStartingWindow);
|
||||
}
|
||||
if (!mFrozenBounds.isEmpty()) {
|
||||
pw.print(prefix); pw.print("mFrozenBounds="); pw.println(mFrozenBounds);
|
||||
|
||||
Reference in New Issue
Block a user