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

Commit b734ceb9 authored by Andrii Kulian's avatar Andrii Kulian Committed by android-build-merger
Browse files

Merge "Defer ensuring visibility on enter/exit split-screen" into pi-dev

am: 6288cf1d

Change-Id: I12587a876c9fb1e9533c63bfb23cef0c5b6dc667
parents 28d1cd21 6288cf1d
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -420,7 +420,9 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
                if (!otherStack.inSplitScreenSecondaryWindowingMode()) {
                    continue;
                }
                otherStack.setWindowingMode(WINDOWING_MODE_FULLSCREEN);
                otherStack.setWindowingMode(WINDOWING_MODE_FULLSCREEN, false /* animate */,
                        false /* showRecents */, false /* enteringSplitScreenMode */,
                        true /* deferEnsuringVisibility */);
            }
        } finally {
            final ActivityStack topFullscreenStack =
@@ -450,7 +452,7 @@ class ActivityDisplay extends ConfigurationContainer<ActivityStack>
                }
                otherStack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_SECONDARY,
                        false /* animate */, false /* showRecents */,
                        true /* enteringSplitScreenMode */);
                        true /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */);
            }
        } finally {
            mSupervisor.mWindowManager.continueSurfaceLayout();
+1 −1
Original line number Diff line number Diff line
@@ -11145,7 +11145,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                    stack.moveToFront("setTaskWindowingModeSplitScreenPrimary", task);
                }
                stack.setWindowingMode(WINDOWING_MODE_SPLIT_SCREEN_PRIMARY, animate, showRecents,
                        false /* enteringSplitScreenMode */);
                        false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */);
                return windowingMode != task.getWindowingMode();
            } finally {
                Binder.restoreCallingIdentity(ident);
+6 −6
Original line number Diff line number Diff line
@@ -515,11 +515,11 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
    @Override
    public void setWindowingMode(int windowingMode) {
        setWindowingMode(windowingMode, false /* animate */, false /* showRecents */,
                false /* enteringSplitScreenMode */);
                false /* enteringSplitScreenMode */, false /* deferEnsuringVisibility */);
    }

    void setWindowingMode(int preferredWindowingMode, boolean animate, boolean showRecents,
            boolean enteringSplitScreenMode) {
            boolean enteringSplitScreenMode, boolean deferEnsuringVisibility) {
        final boolean creating = mWindowContainerController == null;
        final int currentMode = getWindowingMode();
        final ActivityDisplay display = getDisplay();
@@ -555,7 +555,9 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
                // doesn't support split-screen mode, go ahead an dismiss split-screen and display a
                // warning toast about it.
                mService.mTaskChangeNotificationController.notifyActivityDismissingDockedStack();
                display.getSplitScreenPrimaryStack().setWindowingMode(WINDOWING_MODE_FULLSCREEN);
                display.getSplitScreenPrimaryStack().setWindowingMode(WINDOWING_MODE_FULLSCREEN,
                        false /* animate */, false /* showRecents */,
                        false /* enteringSplitScreenMode */, true /* deferEnsuringVisibility */);
            }
        }

@@ -646,9 +648,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
            wm.continueSurfaceLayout();
        }

        // Don't ensure visible activities if the windowing mode change was a side effect of us
        // entering split-screen mode.
        if (!enteringSplitScreenMode) {
        if (!deferEnsuringVisibility) {
            mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, PRESERVE_WINDOWS);
            mStackSupervisor.resumeFocusedStackTopActivityLocked();
        }