Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a4b4ebfb authored by Wale Ogunwale's avatar Wale Ogunwale Committed by android-build-merger
Browse files

Merge "Reset hidden state of AppToken that was cleared due to starting window"...

Merge "Reset hidden state of AppToken that was cleared due to starting window" into oc-dev am: a36e3a13
am: eed78264

Change-Id: I15f93756b44d94baeb71fa2ce73f337a92c3d213
parents a16e2905 eed78264
Loading
Loading
Loading
Loading
+19 −7
Original line number Diff line number Diff line
@@ -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);