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

Commit 0f6caec6 authored by Wei Sheng Shih's avatar Wei Sheng Shih Committed by Automerger Merge Worker
Browse files

Merge "Polish splash screen window from large to small activity." into...

Merge "Polish splash screen window from large to small activity." into udc-qpr-dev am: 8e7ccce5 am: 28cdc8c0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/24151389



Change-Id: I86268d910048bf85966545ec1e6cfc9f7d6f7223
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 3462b733 28cdc8c0
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2683,7 +2683,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
    private boolean transferSplashScreenIfNeeded() {
        if (finishing || !mHandleExitSplashScreen || mStartingSurface == null
                || mStartingWindow == null
                || mTransferringSplashScreenState == TRANSFER_SPLASH_SCREEN_FINISH) {
                || mTransferringSplashScreenState == TRANSFER_SPLASH_SCREEN_FINISH
                // skip copy splash screen to client if it was resized
                || (mStartingData != null && mStartingData.mResizedFromTransfer)) {
            return false;
        }
        if (isTransferringSplashScreen()) {
+4 −0
Original line number Diff line number Diff line
@@ -38,6 +38,10 @@ public abstract class StartingData {
     */
    Task mAssociatedTask;


    /** Whether the starting window is resized from transfer across activities. */
    boolean mResizedFromTransfer;

    /** Whether the starting window is drawn. */
    boolean mIsDisplayed;

+11 −2
Original line number Diff line number Diff line
@@ -1935,7 +1935,9 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
        }
        final ActivityRecord atoken = mActivityRecord;
        if (atoken != null) {
            return ((!isParentWindowHidden() && atoken.isVisible())
            final boolean isVisible = isStartingWindowAssociatedToTask()
                    ? mStartingData.mAssociatedTask.isVisible() : atoken.isVisible();
            return ((!isParentWindowHidden() && isVisible)
                    || isAnimationRunningSelfOrParent());
        }
        final WallpaperWindowToken wtoken = mToken.asWallpaperToken();
@@ -2330,6 +2332,13 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
            // IME surface association. (e.g. Attach IME surface on the display instead of the
            // app when the app bounds being letterboxed.)
            mDisplayContent.updateImeControlTarget(isImeLayeringTarget() /* updateImeParent */);
            // Fix the starting window to task when Activity has changed.
            if (mStartingData != null && mStartingData.mAssociatedTask == null
                    && !mTempConfiguration.windowConfiguration.getBounds().equals(getBounds())) {
                mStartingData.mResizedFromTransfer = true;
                // Lock the starting window to task, so it won't resize from transfer anymore.
                mActivityRecord.associateStartingWindowWithTaskIfNeeded();
            }
        }
    }

@@ -3907,7 +3916,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
     * LetterboxUiController#shouldShowLetterboxUi} for more context.
     */
    boolean areAppWindowBoundsLetterboxed() {
        return mActivityRecord != null
        return mActivityRecord != null && !isStartingWindowAssociatedToTask()
                && (mActivityRecord.areBoundsLetterboxed() || isLetterboxedForDisplayCutout());
    }