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

Commit 19709e9e authored by wilsonshih's avatar wilsonshih
Browse files

Preventing from double remove starting window after Activity destoryed

All client views will be removed after activity destoryed, so and the
starting window. Checking whether the view was detached from window
before remove it from WindowManagerGlobal to prevent the extra remove
calls.

Bug: 286563704
Test: atest StartingSurfaceDrawerTests
Change-Id: Iefd390825fabac2fc1e46b0a9404f9909f159cf9
parent a9025bc5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER;
import static android.view.Choreographer.CALLBACK_INSETS_ANIMATION;
import static android.window.StartingWindowInfo.STARTING_WINDOW_TYPE_LEGACY_SPLASH_SCREEN;

import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
@@ -370,8 +371,11 @@ class SplashscreenWindowCreator extends AbsSplashWindowCreator {
        mStartingWindowRecordManager.addRecord(taskId, tView);
    }

    private void removeWindowInner(View decorView, boolean hideView) {
    private void removeWindowInner(@NonNull View decorView, boolean hideView) {
        requestTopUi(false);
        if (!decorView.isAttachedToWindow()) {
            return;
        }
        if (hideView) {
            decorView.setVisibility(View.GONE);
        }