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

Commit 455c2816 authored by Tyler Lacey's avatar Tyler Lacey Committed by Automerger Merge Worker
Browse files

Merge "When adding overlay to a task, emit an immediate inset update" into tm-dev am: 11000cfd

parents 7c903f57 11000cfd
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -3427,6 +3427,12 @@
      "group": "WM_DEBUG_FOCUS_LIGHT",
      "at": "com\/android\/server\/wm\/WindowState.java"
    },
    "1288920916": {
      "message": "Error sending initial insets change to WindowContainer overlay",
      "level": "ERROR",
      "group": "WM_DEBUG_ANIM",
      "at": "com\/android\/server\/wm\/WindowContainer.java"
    },
    "1305412562": {
      "message": "Report configuration: %s %s",
      "level": "VERBOSE",
+16 −1
Original line number Diff line number Diff line
@@ -3860,7 +3860,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
                @AnimationType int type, @Nullable AnimationAdapter snapshotAnim);
    }

    void addTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay) {
    void addTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay,
            @Nullable WindowState initialWindowState) {
        if (mOverlayHost == null) {
            mOverlayHost = new TrustedOverlayHost(mWmService);
        }
@@ -3876,6 +3877,20 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
                    "Error sending initial configuration change to WindowContainer overlay");
            removeTrustedOverlay(overlay);
        }

        // Emit an initial WindowState so that proper insets are available to overlay views
        // shortly after the overlay is added.
        if (initialWindowState != null) {
            final InsetsState insetsState = initialWindowState.getInsetsState();
            final Rect dispBounds = getBounds();
            try {
                overlay.getRemoteInterface().onInsetsChanged(insetsState, dispBounds);
            } catch (Exception e) {
                ProtoLog.e(WM_DEBUG_ANIM,
                        "Error sending initial insets change to WindowContainer overlay");
                removeTrustedOverlay(overlay);
            }
        }
    }

    void removeTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay) {
+1 −1
Original line number Diff line number Diff line
@@ -8135,7 +8135,7 @@ public class WindowManagerService extends IWindowManager.Stub
                if (task == null) {
                    throw new IllegalArgumentException("no task with taskId" + taskId);
                }
                task.addTrustedOverlay(overlay);
                task.addTrustedOverlay(overlay, task.getTopVisibleAppMainWindow());
            }
        }