Merge "When adding overlay to a task, emit an immediate inset update" into tm-dev
This commit is contained in:
@@ -3427,6 +3427,12 @@
|
|||||||
"group": "WM_DEBUG_FOCUS_LIGHT",
|
"group": "WM_DEBUG_FOCUS_LIGHT",
|
||||||
"at": "com\/android\/server\/wm\/WindowState.java"
|
"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": {
|
"1305412562": {
|
||||||
"message": "Report configuration: %s %s",
|
"message": "Report configuration: %s %s",
|
||||||
"level": "VERBOSE",
|
"level": "VERBOSE",
|
||||||
|
|||||||
@@ -3860,7 +3860,8 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
|
|||||||
@AnimationType int type, @Nullable AnimationAdapter snapshotAnim);
|
@AnimationType int type, @Nullable AnimationAdapter snapshotAnim);
|
||||||
}
|
}
|
||||||
|
|
||||||
void addTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay) {
|
void addTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay,
|
||||||
|
@Nullable WindowState initialWindowState) {
|
||||||
if (mOverlayHost == null) {
|
if (mOverlayHost == null) {
|
||||||
mOverlayHost = new TrustedOverlayHost(mWmService);
|
mOverlayHost = new TrustedOverlayHost(mWmService);
|
||||||
}
|
}
|
||||||
@@ -3876,6 +3877,20 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
|
|||||||
"Error sending initial configuration change to WindowContainer overlay");
|
"Error sending initial configuration change to WindowContainer overlay");
|
||||||
removeTrustedOverlay(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) {
|
void removeTrustedOverlay(SurfaceControlViewHost.SurfacePackage overlay) {
|
||||||
|
|||||||
@@ -8135,7 +8135,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
if (task == null) {
|
if (task == null) {
|
||||||
throw new IllegalArgumentException("no task with taskId" + taskId);
|
throw new IllegalArgumentException("no task with taskId" + taskId);
|
||||||
}
|
}
|
||||||
task.addTrustedOverlay(overlay);
|
task.addTrustedOverlay(overlay, task.getTopVisibleAppMainWindow());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user