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

Commit ab34d09b authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Always resume view when relaunching with preserved window

This relaxes the condition added in [1]. Because
IWindow#dispatchAppVisibility(true) may arrive after the
relaunch message, then getHostVisibility() will be GONE
because mAppVisible is still false.

The original concern is not a problem: call Activity#recreate()
while the activity is invisible. Because a stopped activity
won't use preserveWindow=true, it won't call VRI#notifyChildRebuilt.

[1]: Iee780c12535217a5a9726f9f4d6b21952ce56d70

Bug: 269179932
Test: WMShellFlickerTests:CopyContentInSplit

Change-Id: I7ea7d54f0c6bbf67b295ac3a2c97a62d81b0458b
parent fcb2bb51
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1136,7 +1136,7 @@ public final class ViewRootImpl implements ViewParent,
        // Make sure to report the completion of draw for relaunch with preserved window.
        // Make sure to report the completion of draw for relaunch with preserved window.
        reportNextDraw("rebuilt");
        reportNextDraw("rebuilt");
        // Make sure to resume this root view when relaunching its host activity which was stopped.
        // Make sure to resume this root view when relaunching its host activity which was stopped.
        if (mStopped && getHostVisibility() != View.GONE) {
        if (mStopped) {
            setWindowStopped(false);
            setWindowStopped(false);
        }
        }
    }
    }