summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Tiger <tigerhuang@google.com> 2023-05-31 16:54:26 +0800
committer Tiger Huang <tigerhuang@google.com> 2023-05-31 09:21:01 +0000
commit7bf6dc611a752cdac72cbb84bd57e69621ef36a0 (patch)
tree00625d651a102da073f9e6f5ccc0add4fee81bf8
parent878b61b06329ecfa4a0f1367dbbe9c968b1c3930 (diff)
Use the copy constructor to create simulated sources
In this way, we don't need to modify the code in createSimulatedSource when there is a new field of InsetsSource. This fixes a regression since 244e9600633a2ebe77de4585cfa518d2dedf358a Fix: 285080829 Test: Open Settings from portrait while holding device in landscape, and see if the nav bar area is transparent in gesture nav mode. Change-Id: I8288f9d9bf6f2f28a71448cc35727c1c3955bad7
-rw-r--r--services/core/java/com/android/server/wm/InsetsSourceProvider.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/wm/InsetsSourceProvider.java b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
index b7eaf259ea7a..1a322ff0196f 100644
--- a/services/core/java/com/android/server/wm/InsetsSourceProvider.java
+++ b/services/core/java/com/android/server/wm/InsetsSourceProvider.java
@@ -272,15 +272,17 @@ class InsetsSourceProvider {
/** @return A new source computed by the specified window frame in the given display frames. */
InsetsSource createSimulatedSource(DisplayFrames displayFrames, Rect frame) {
- // Don't copy visible frame because it might not be calculated in the provided display
- // frames and it is not significant for this usage.
- final InsetsSource source = new InsetsSource(mSource.getId(), mSource.getType());
- source.setVisible(mSource.isVisible());
+ final InsetsSource source = new InsetsSource(mSource);
mTmpRect.set(frame);
if (mFrameProvider != null) {
mFrameProvider.apply(displayFrames, mWindowContainer, mTmpRect);
}
source.setFrame(mTmpRect);
+
+ // Don't copy visible frame because it might not be calculated in the provided display
+ // frames and it is not significant for this usage.
+ source.setVisibleFrame(null);
+
return source;
}