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

Commit 096de3c3 authored by Craig Mautner's avatar Craig Mautner Committed by Android (Google) Code Review
Browse files

Merge "Notify apps when insets change." into klp-dev

parents 6d0d4b5b 4c5eb224
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ class AppWindowToken extends WindowToken {
    int groupId = -1;
    boolean appFullscreen;
    int requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
    int configChanges;
    boolean layoutConfigChanges;
    boolean showWhenLocked;

    // The input dispatching timeout for this application token in nanoseconds.
+2 −0
Original line number Diff line number Diff line
@@ -271,6 +271,8 @@ public class TaskStack {
                for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
                    final WindowState win = windows.get(winNdx);
                    if (!resizingWindows.contains(win)) {
                        if (WindowManagerService.DEBUG_RESIZE) Slog.d(TAG,
                                "setBounds: Resizing " + win);
                        resizingWindows.add(win);
                    }
                    win.mUnderStatusBar = underStatusBar;
+6 −11
Original line number Diff line number Diff line
@@ -3439,7 +3439,8 @@ public class WindowManagerService extends IWindowManager.Stub
            atoken.appFullscreen = fullscreen;
            atoken.showWhenLocked = showWhenLocked;
            atoken.requestedOrientation = requestedOrientation;
            atoken.configChanges = configChanges;
            atoken.layoutConfigChanges = (configChanges &
                    (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION)) != 0;
            if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(TAG, "addAppToken: " + atoken
                    + " to stack=" + stackId + " task=" + taskId + " at " + addPos);

@@ -8269,10 +8270,9 @@ public class WindowManagerService extends IWindowManager.Stub
            // windows, since that means "perform layout as normal,
            // just don't display").
            if (!gone || !win.mHaveFrame || win.mLayoutNeeded
                    || win.isConfigChanged() && (win.mAttrs.type == TYPE_KEYGUARD ||
                            (win.mAppToken != null && (win.mAppToken.configChanges &
                            (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION))
                                    != 0))
                    || ((win.isConfigChanged() || win.setInsetsChanged()) &&
                            (win.mAttrs.type == TYPE_KEYGUARD ||
                            win.mAppToken != null && win.mAppToken.layoutConfigChanges))
                    || win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) {
                if (!win.mLayoutAttached) {
                    if (initial) {
@@ -8706,12 +8706,7 @@ public class WindowManagerService extends IWindowManager.Stub
    private void updateResizingWindows(final WindowState w) {
        final WindowStateAnimator winAnimator = w.mWinAnimator;
        if (w.mHasSurface && w.mLayoutSeq == mLayoutSeq) {
            w.mOverscanInsetsChanged |=
                    !w.mLastOverscanInsets.equals(w.mOverscanInsets);
            w.mContentInsetsChanged |=
                    !w.mLastContentInsets.equals(w.mContentInsets);
            w.mVisibleInsetsChanged |=
                    !w.mLastVisibleInsets.equals(w.mVisibleInsets);
            w.setInsetsChanged();
            boolean configChanged = w.isConfigChanged();
            if (DEBUG_CONFIGURATION && configChanged) {
                Slog.v(TAG, "Win " + w + " config changed: "
+7 −0
Original line number Diff line number Diff line
@@ -701,6 +701,13 @@ final class WindowState implements WindowManagerPolicy.WindowState {
        return mAppToken != null ? mAppToken.appToken : null;
    }

    boolean setInsetsChanged() {
        mOverscanInsetsChanged |= !mLastOverscanInsets.equals(mOverscanInsets);
        mContentInsetsChanged |= !mLastContentInsets.equals(mContentInsets);
        mVisibleInsetsChanged |= !mLastVisibleInsets.equals(mVisibleInsets);
        return mOverscanInsetsChanged || mContentInsetsChanged || mVisibleInsetsChanged;
    }

    public int getDisplayId() {
        return mDisplayContent.getDisplayId();
    }